当前位置: 首页 > 编程笔记 >

PHP中类静态调用和范围解析操作符的区别解析

桂志诚
2023-03-14
本文向大家介绍PHP中类静态调用和范围解析操作符的区别解析,包括了PHP中类静态调用和范围解析操作符的区别解析的使用技巧和注意事项,需要的朋友参考一下

具体代码如下所示:

<?php
//在子类或类内部用“::”调用本类或父类时,不是静态调用方法,而是范围解析操作符。
class ParentClass {
 public static $my_static = 'parent var ';
 function test() {
  self::who(); // 输出 'parent' 是范围解析,不是静态调用
  $this->who(); // 输出 'child'
  static::who(); // 延迟静态绑定 是范围解析,不是静态调用
 }
 function who() {
  echo 'parent<br>';
 }
}
class ChildClass extends ParentClass {
 public static $my_static = 'child var ';
 function who() {
  echo 'child<br>';
 }
}
$obj = new ChildClass();
$obj->test();
echo ChildClass::$my_static;//静态调用

上面输出

parent

child

child

child var

总结

以上所述是小编给大家介绍的PHP中类静态调用和范围解析操作符的区别解析,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!

 类似资料:
  • 本文向大家介绍详解JavaScript中new操作符的解析和实现,包括了详解JavaScript中new操作符的解析和实现的使用技巧和注意事项,需要的朋友参考一下 前言 new 运算符是我们在用构造函数创建实例的时候使用的,本文来说一下 new 运算符的执行过程和如何自己实现一个类似 new 运算符的函数。 new 运算符的运行过程 new 运算符的主要目的就是为我们创建一个用户定义的对象类型的实

  • 本文向大家介绍浅析php静态方法与非静态方法的用法区别,包括了浅析php静态方法与非静态方法的用法区别的使用技巧和注意事项,需要的朋友参考一下 在php编程中,static关键字声明一个属性或方法是和类相关的,而不是和类的某个特定的实例相关,因此,这类属性或方法也称为“类属性”或“类方法” 如果访问控制权限允许,可不必创建该类对象而直接使用类名加两个冒号“::”调用。 static关键字可以用来修

  • 本文向大家介绍Oracle硬解析和软解析的区别分析,包括了Oracle硬解析和软解析的区别分析的使用技巧和注意事项,需要的朋友参考一下 一、摘要 Oracle硬解析和软解析是我们经常遇到的问题,所以需要考虑何时产生软解析何时产生硬解析,如何判断 SQL的执行过程 当发布一条SQL或PL/SQL命令时,Oracle会自动寻找该命令是否存在于共享池中来决定对当前的语句使用硬解析或软解析。 通常情况下,

  • 本文向大家介绍浅析C#中静态方法和非静态方法的区别,包括了浅析C#中静态方法和非静态方法的区别的使用技巧和注意事项,需要的朋友参考一下 静态方法和非静态方法的区别:   1.静态方法不需要类实例化就可以调用,反之非静态方法需要实例化后才能调用;   2.静态方法只能访问静态成员和方法,非静态方法都可以访问;   3.静态方法不能标记为override,导致派生类不能重写,但是可以访问;   4.静

  • 你能告诉我什么时候和为什么我应该使用关键字static以及什么时候我应该使用关键字class吗?(这是Swift中的类型属性语法)

  • 本文向大家介绍PHP中的socket_read和socket_recv区别详解,包括了PHP中的socket_read和socket_recv区别详解的使用技巧和注意事项,需要的朋友参考一下 前几天用PHP写一个socket网络服务,在文档里看到socket_read和socket_recv这两个方法时有点晕,乍一看这不是一样的嘛,干吗还要给两个不同的用法呢。看文档没看太明白,看了下源码才搞清楚,