PHP面向对象后期静态绑定是如何实现类方法调用与对象无关的吗?
- 内容介绍
- 文章标签
- 相关推荐
本文共计770个文字,预计阅读时间需要4分钟。
推荐:PHP视频教程 + 介绍 + 自PHP 5.3.0起,PHP增加了称为后期静态绑定的功能,用于在继承范围内内部引用静态调用的类。简单说,后期静态绑定工作原理是存储了上一级的非转化引用。
推荐:《PHP视频教程》
介绍
自 PHP 5.3.0 起,PHP 增加了一个叫做后期静态绑定的功能,用于在继承范围内引用静态调用的类。
准确说,后期静态绑定工作原理是存储了在上一个“非转发调用”(non-forwarding call)的类名。当进行静态方法调用时,该类名即为明确指定的那个(通常在 :: 运算符左侧部分);当进行非静态方法调用时,即为该对象所属的类。所谓的“转发调用”(forwarding call)指的是通过以下几种方式进行的静态调用:self::,parent::,static:: 以及 forward_static_call()。可用 get_called_class() 函数来得到被调用的方法所在的类名,static:: 则指出了其范围。
本文共计770个文字,预计阅读时间需要4分钟。
推荐:PHP视频教程 + 介绍 + 自PHP 5.3.0起,PHP增加了称为后期静态绑定的功能,用于在继承范围内内部引用静态调用的类。简单说,后期静态绑定工作原理是存储了上一级的非转化引用。
推荐:《PHP视频教程》
介绍
自 PHP 5.3.0 起,PHP 增加了一个叫做后期静态绑定的功能,用于在继承范围内引用静态调用的类。
准确说,后期静态绑定工作原理是存储了在上一个“非转发调用”(non-forwarding call)的类名。当进行静态方法调用时,该类名即为明确指定的那个(通常在 :: 运算符左侧部分);当进行非静态方法调用时,即为该对象所属的类。所谓的“转发调用”(forwarding call)指的是通过以下几种方式进行的静态调用:self::,parent::,static:: 以及 forward_static_call()。可用 get_called_class() 函数来得到被调用的方法所在的类名,static:: 则指出了其范围。

