【发布时间】:2012-10-18 02:34:42
【问题描述】:
目前我正在阅读 PHP 5 OOP (properties section) 并在那里找到了以下语句:
在类方法中,属性、常量和方法可以是 使用 $this->property
形式访问
这很奇怪,但我无法使用该格式访问常量。以下代码会引起注意:
class A
{
const HELLO = 'HELLO WORLD';
public function __construct()
{
echo $this->HELLO;
}
}
$a = new A();
我是否误解了某些内容或文档作者犯了错误?
【问题讨论】:
-
@NullUserException: 类常量不是静态属性,他没有从静态方法中访问它。
-
@drrcknlsn 您在技术上是正确的,但该页面确实告诉您有两种访问属性的方法,具体取决于它们是什么(
$this->和self::)。我的猜测是编写文档的人都认为常量与静态属性非常相似,因此将“常量”部分留在了句子之外。 -
请参阅类常量手册页:php.net/language.oop5.constants。对象属性页面具有误导性,实际上与常量无关。
-
@NullUserException: 访问常量时不像访问静态属性那样使用印记,因此它不仅仅是语义上的差异 -
self::FOO与self::$foo。
标签: php class properties