【发布时间】:2013-03-12 16:33:15
【问题描述】:
我最近一直在加强我的 PHP 游戏。来自 JavaScript,我发现对象模型更易于理解。
我遇到了一些怪癖,我想澄清一下,但我似乎在文档中找不到。
在 PHP 中定义类时,您可以像这样定义属性:
class myClass {
public $myProp = "myProp";
static $anotherProp = "anotherProp";
}
使用$myProp 的公共变量,我们可以使用$myClass->myProp 访问它(假设myClass 在名为$myClass 的变量中引用)$myClass->myProp 不使用美元符号。
我们只能使用:: 访问静态变量。因此,我们可以使用美元符号访问像 $myClass::$anotherProp 这样的静态变量。
问题是,为什么我们必须在:: 而不是-> 中使用美元符号??
编辑
这是我认为可以工作(并且确实)的代码:
class SethensClass {
static public $SethensProp = "This is my prop!";
}
$myClass = new SethensClass;
echo $myClass::$SethensProp;
【问题讨论】:
-
有趣...一个赞成票和一个关闭请求。
-
抱歉在这里评论your other question(如果作为一系列个人问题被问到,我个人认为会很好 - 参见例如stackoverflow.com/questions/15270843/…),但要说“最佳实践”说要这样做”有点没有意义。如果您无法解释为什么您认为某事是“最佳实践”,那么您怎么知道它是“最佳”?不同的事情在不同的情况下是最好的。
-
@PaulD.Waite 没关系。作为一名试图推进他的开发的开发人员,在我看来,询问某个特定库是否遵循最佳实践来帮助他们学习的问题是可以接受的。对于整个社区来说,不支持这是非常令人沮丧的。我不相信特定的库是使用最佳实践编写的,我正在努力确保它没有做错,所以当我贡献代码时,我可以确定它是最好的。
-
酷酷。请记住,要使您的代码达到最佳状态,您需要超越“有人说这是最佳实践”,并理解为什么某些东西被认为是好的或最佳实践。
标签: php