php53新特性之延迟静态绑定
풀어 주다: 2016-08-08 09:19:34
基于PHP版本: 5.3.5
PHP5.3 以后引入了延迟静态绑定:
static(关键字) 类似于
self(关键字
), 但它指向的是
被调用的类(Document)而不是
包含类(DomainObject),static和self的区别:
主要的作用就是,弥补了原先的不足,原先子类可以用parent找到父类对象的,现在可以在父类用static找到当前继承它的这个子类对象。
class A { public static function echoClass() { echo __CLASS__; }
로그인 후 복사
public function what(){ echo __CLASS__;}
로그인 후 복사
public static function test() { $this->what(); //输出B
로그인 후 복사
static::echoClass(); //输出B self::echoClass(); //输出A } } class B extends A { public static function echoClass() { echo __CLASS__; } } B::test();
self是指当前类的对象,static是指调用的类的对象,$this也是指当前调用的类的对象,只是$this不能调用静态属性,self可以,而__CLASS__是用于指定类的名称,一般用于注册类的方法使使用。
class B extends A { public static function echoClass($name=1) { spl_autoload_register(array(__CLASS__,"echoClass")); echo __CLASS__; } }
로그인 후 복사
版权声明:本文为博主原创文章,未经博主允许不得转载。
以上就介绍了php53新特性之延迟静态绑定,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
-
2024-08-17 22:50:09
-
2024-08-17 22:50:02
-
2024-08-17 22:32:17
-
2024-08-17 22:31:32
-
2024-08-17 22:01:02
-
2024-08-17 21:49:11
-
2024-08-17 21:45:11
-
2024-08-17 21:40:32
-
2024-08-17 21:40:18
-
2024-08-17 21:40:11