This article brings you code examples about non-forwarding calls and forwarding calls in PHP. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.
Static access to members of a class:
1. Non-forwarded call
1) Clear class name (A::funcA())
2. Forward call
1)self:: 2)parent:: 3)static:: 4)forward_static_call() 5)get_called_class()
Note:
"Late binding" means that static:: is no longer parsed into the class in which the current method is defined, but is actually run calculated at time. It can also be called "static binding" because it can be used for (but is not limited to) calls to static methods.
<?php class A { public static function foo() { static::who(); } public static function who() { echo __CLASS__."\n"; } } class B extends A { public static function test() { A::foo(); parent::foo(); self::foo(); } public static function who() { echo __CLASS__."\n"; } } class C extends B { public static function who() { echo __CLASS__."\n"; } } C::test(); ?>
A C C
The inherited property belongs to you
The inheritance chain gives priority to accessing the current class, accessing according to the reserved word characteristics, and then accessing according to the inheritance chain.
$this Access member (calling context)
self:: Access member (parsing context)
<?php class A{ protected $value = "A value"; public function printValue(){ echo $this->value; } } class B extends A{ protected $value = "B value"; } $app = new B(); $app->printValue();
运行结果:B value
<?php class A{ //只有将属性定义为静态的才能使用self::进行调用 static protected $value = "A static value "; public function printValue(){ echo self::$value; } } class B extends A{ static protected $value = "B static value"; } $app = new B(); $app->printValue();
运行结果:A static value
<?php class A{ static protected $value = "A static value "; } class B extends A{ public function printValue(){ echo self::$value; } } $app = new B(); $app->printValue();
运行结果:A static value
Related recommendations:
PHP wants How to implement page jump function? (Example of function tags)
How to implement drop-down menus and multi-level columns in php? (Actual code test) Code for uploading image files to the server by combining php and html
The above is the detailed content of Code examples of non-forwarded calls and forwarded calls in PHP. For more information, please follow other related articles on the PHP Chinese website!