在PHP中通过$this
或new
操作符或通过作用域解析操作符访问类的属性有什么区别?
$this->
vs ->
vs ::
$this->
可以在引用自身时从类内部使用。
$object->
在引用一个特定对象时从类外部使用。
$class_name::
用于引用特定类的静态属性或方法。
$object->property;
Class::property;
是,第一个访问对象属性,而第二个访问(static
)类属性。我真的不知道,你所说的"通过新的操作符"是什么意思,因为通过new
没有属性以任何方式可访问,因为new
只是创建一个类的新对象实例。然而,$this->property
与上面的第一个例子完全相同,但是$this
只在对象方法中有效,并且总是引用对象本身。