首页 > 编程 > PHP > 正文

php中非转发调用以及转发调用的代码实例

2020-03-22 18:27:55
字体:
来源:转载
供稿:网友
本篇文章给大家带来的内容是关于php中非转发调用以及转发调用的代码实例,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

静态访问类的成员:

1.非转发调用

1)类名明确(A::funcA())

2.转发调用

 1)self:: 2)parent:: 3)html' target='_blank'>static:: 4)forward_static_call() 5)get_called_class()

注意:
“后期绑定”的意思是说,static:: 不再被解析为定义当前方法所在的类,而是在实际运行时计算的。也可以称之为“静态绑定”,因为它可以用于(但不限于)静态方法的调用。

 ?phpclass A { public static function foo() { static::who(); public static function who() { echo __CLASS__. /n class B extends A { public static function test() { A::foo(); parent::foo(); self::foo(); public static function who() { echo __CLASS__. /n class C extends B { public static function who() { echo __CLASS__. /n C::test();? 
运行结果:
AC
Note:
在非静态环境下,所调用的类即为该对象实例所属的类。由于 $this- 会在同一作用范围内尝试调用私有方法,而 static:: 则可能给出不同结果。另一个区别是 static:: 只能用于静态属性。

继承的财产属于自己

继承链 优先访问当前类,依据保留字特性进行访问,然后依据继承链进行访问。

$this 访问成员 (调用上下文)

self:: 访问成员(解析上下文)

 ?phpclass A{ protected $value = A value  public function printValue(){ echo $this- value;class B extends A{ protected $value = B value $app = new B();$app- printValue();
运行结果:B value
 ?phpclass A{ //只有将属性定义为静态的才能使用self::进行调用 static protected $value = A static value  public function printValue(){ echo self::$value;class B extends A{ static protected $value = B static value $app = new B();$app- printValue();
运行结果:A static value
 ?phpclass A{ static protected $value = A static value class B extends A{ public function printValue(){ echo self::$value;$app = new B();$app- printValue();
运行结果:A static value

相关推荐:

PHP想要实现页面跳转功能具体怎么操作?(函数标签示例)

php下拉菜单及多级栏目怎么实现的?(代码实测)

php和html结合实现上传图片文件到服务器的代码

以上就是php中非转发调用以及转发调用的代码实例的详细内容,PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表