热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php5.3新特性之延迟静态绑定

基于PHP版本:5.3.5PHP5.3以后引入了延迟静态绑定:static(关键字)类似于self(关键字),但它指向的是被调用的类(Document)而不是包含类(Dom

基于PHP版本: 5.3.5

PHP5.3 以后引入了延迟静态绑定:

static(关键字) 类似于 self(关键字) , 但它指向的是被调用的类(Document而不是包含类(DomainObjectstatic 和 self 的区别:

主要的作用就是,弥补了原先的不足,原先子类可以用parent找到父类对象的,现在可以在父类用static找到当前继承它的这个子类对象,从而调用子类自己的静态方法,$this可以调用子类自己的方法。

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__;
}
}



推荐阅读
author-avatar
手机用户2502860727
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有