PHP里一种陌生的写法 通过&className::$variable这种方式取值的写法疑问?

新手上路,请多包涵

问题描述

在某一个php框架的源码里,看见这种取值写法

class A{

public static $_conf = null;

public static function test()
{
    $conf = &A::$_conf;
}

}

通过&A::$_conf的方式获取值,并且赋值,这种方式的优点是什么,跟
self::$_conf
static::$_conf
A::$_conf
这几种写法的区别是什么?

阅读 1.1k
1 个回答

&表示按引用赋值,和你说的内容不相关。

直接用类名是用来在类定义访问类常量/静态属性/静态方法的。

使用self则是用来在类定义访问当前类(也就是自己)的类常量/静态属性/静态方法的。

使用parent则是用来在子类的定义访问父类类常量/静态属性/静态方法的。还有个用处,就是如果在子类中覆盖了父类的方法,那么可以用parent来访问被覆盖掉的父类方法。

static是用于后期静态绑定的。这方面比较复杂,一两句话说不清,请查阅相关资料吧。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题