我最近一直在加强我的 PHP 游戏。来自 JavaScript,我发现对象模型更易于理解。
我遇到了一些怪癖,我想澄清一下我似乎在文档中找不到的东西。
在 PHP 中定义类时,您可以像这样定义属性:
class myClass {
public $myProp = "myProp";
static $anotherProp = "anotherProp";
}
使用 public 变量,$myProp
我们可以使用(假设myClass
在名为 的变量中引用$myClass
)访问它,$myClass->myProp
而无需使用美元符号。
我们只能使用::
. $myClass::$anotherProp
因此,我们可以像使用美元符号一样访问静态变量。
问题是,为什么我们必须使用美元符号::
而不是->
?
编辑
这是我认为可以工作(并且确实)的代码:
class SethensClass {
static public $SethensProp = "This is my prop!";
}
$myClass = new SethensClass;
echo $myClass::$SethensProp;