本篇文章简单的讲述了PHP中的静态绑定,对于PHP中的静态绑定不太熟悉的同学可以一起来看看本篇关于php静态绑定的文章哦!
后期静态绑定工作原理是存储了在上一个“非转发调用”(non-forwarding call
)的类名。
当进行静态方法调用时,该类名即为明确指定的那个(通常在 :: 运算符左侧部分);
当进行非静态方法调用时,即为该对象所属的类。
所谓的“转发调用”(forwarding call
)指的是通过以下几种方式进行的静态调用:self::
,parent::
,static::
以及forward_static_call()
。可用 get_called_class()
函数来得到被调用的方法所在的类名,static::
则指出了其范围。
使用 self:: 或者 CLASS 对当前类的静态引用,取决于定义当前方法所在的类:
例:
class A { public static function who () { echo CLASS ; } public static function test () { self :: who (); } } class B extends A { public static function who () { echo CLASS ; } } B :: test ();
结果:
// A
以上讲述本篇文章的所有内容,大家在看过之后肯定是感觉很迷糊的,希望大家可以结合例子多看并自己实现两篇!
相关推荐:
Atas ialah kandungan terperinci php静态绑定详细讲述. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!