PHP后期静态绑定的功能
来源:互联网 发布:java getter 方法注释 编辑:程序博客网 时间:2024/05/17 01:04
PHP后期静态绑定的功能
1、版本支持
自 PHP 5.3.0 起,PHP 增加了一个叫做后期静态绑定的功能,用于在继承范围内引用静态调用的类。
2、工作原理
后期静态绑定工作原理是存储了在上一个“非转发调用”(non-forwarding call)的类名。当进行静态方法调用时,该类名即为明确指定的那个(通常在 :: 运算符
左侧部分);当进行非静态方法调用时,即为该对象所属的类。
所谓的“转发调用”(forwarding call)指的是通过以下几种方式进行的静态调用:self::,parent::,static:: 以及forward_static_call()。可用 get_called_class()
函数来得到被调用的方法所在的类名。
static:: 则指出了其范围。该功能从语言内部角度考虑被命名为“后期静态绑定”。“后期绑定”的意思是说,static:: 不再被解析为定义当前方法所在的类,而是在
实际运行时计算的。也可以称之为“静态绑定”,因为它可以用于(但不限于)静态方法的调用。
3、self:: 的限制
使用 self:: 或者 __CLASS__ 对当前类的静态引用,取决于定义当前方法所在的类:
4、代码如下:
class A
{
public $a = __CLASS__;
public static function get_self(){
return new self();
}
public static function get_static(){
return new static();
}
}
class B extends A{
public $a = __CLASS__;
}
$obj = B::get_self(); //$obj 指向 A
echo $obj->a; //输出A
$obj = B::get_static(); //$obj 指向 B
echo $obj->a; //输出B
0 0
- PHP后期静态绑定的功能
- php 后期静态绑定
- php后期静态绑定
- php静态后期绑定
- php 后期静态绑定
- php后期静态绑定
- PHP后期静态绑定
- php 后期静态绑定的用法 static::
- 81. PHP 后期静态绑定
- PHP后期静态绑定测试
- PHP static后期静态绑定
- PHP学习笔记之:后期静态绑定的用法
- php 后期静态绑定 static 关键字的另一种用法
- PHP 后期静态绑定之self::限制
- php后期静态绑定例子讲解
- static 后期静态绑定
- PHP中的后期静态绑定(Late Static Bindings )
- 【转载修改】后期静态绑定
- angularJS中的 resize of div
- 读《应试教育的死穴,恰在于堵死了“犯错”的空间》有感
- 修改Vagrant box磁盘大小
- 谈升职加薪
- 计算机网络---基础题目汇总五
- PHP后期静态绑定的功能
- 29-关于java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream解决办法
- 支持向量机(二)线性可分支持向量机与硬间隔最大化
- iOS开发的52个要点纪要之九
- oracle常用命令记录
- 后台跨目录访问
- 程序员自学的那些事
- Android5.x Notification应用解析
- Omnifocus使用4【Applescript】