最近我在加强我对PHP的学习。作为一名来自JavaScript的开发者,我发现PHP的对象模型要简单一些。
但我也遇到了一些奇怪的问题,想要有些澄清,但文档中好像找不到相关信息。
在PHP中定义类时,你可以像这样定义属性:
class myClass {
public $myProp = "myProp";
static $anotherProp = "anotherProp";
}
拥有公共变量$myProp
,我们可以使用(假设myClass
被引用在一个名为$myClass
的变量中)$myClass->myProp
来访问它,而不需要使用美元符号。只能使用
::
来访问静态变量。所以,我们可以像这样使用美元符号访问静态变量:$myClass::$anotherProp
。问题是,为什么我们必须在
::
上使用美元符号而不是->
??编辑:
以下是我认为会起作用(并且确实起作用)的代码:
class SethensClass {
static public $SethensProp = "This is my prop!";
}
$myClass = new SethensClass;
echo $myClass::$SethensProp;