This article mainly introduces the difference between class static calling and range resolution operators in PHP. Friends who need it can refer to it. I hope it can help everyone.
The specific code is as follows:
<?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;//静态调用
The above output
parent
child
child
child var
Related recommendations:
Can non-static methods be called statically in PHP? (Weird call)
Application analysis of PHP statically calling non-static methods_PHP tutorial
Application analysis of PHP statically calling non-static methods
The above is the detailed content of The difference between class static call and scope resolution operator in PHP. For more information, please follow other related articles on the PHP Chinese website!