我正在把头发拉出来。PHP 很新,但这太基本了,我就是不知道问题出在哪里。以下面的代码片段为例:
class LG_Activity_Processor {
// Activity Types
const STATUS_DRAFT = 'draft';
const STATUS_PUBLISH = 'publish';
...
private $STATUS_FUTURE = 'future';
define ("STATUS_PRIVATE" , 'private');
我最初打算只使用“const”构造,因为变量在运行时之前已经完全定义,我只是认为语法比那个丑陋的“define”更漂亮。问题是虽然const的定义没有给出错误,但每当我稍后在类中引用该常量时,我都会收到以下错误消息:
PHP 注意:使用未定义的常量 STATUS_PUBLISH - 假定为 'STATUS_PUBLISH'
嗯?为了清楚起见,这是我用来引用“const”的语法:
$core_fields ['post_status'] = STATUS_PUBLISH;
我什至尝试过:
$core_fields ['post_status'] = $this->STATUS_PUBLISH;
没爱。然后我进入了绝望的状态,最终尝试了“define”。相同的调用语法,但我将定义语法更改为如上所示的“STATUS_PRIVATE”。这让事情变得很有价值,因为我现在在定义行上有一个致命错误,看起来像这样:
PHP Parse error: syntax error, unexpected T_STRING, expecting T_FUNCTION
我放弃。我最后只是将变量定义为私有变量(如 STATUS_FUTURE 的示例中),然后将其称为:
$core_fields ['post_status'] = $this->STATUS_PUBLISH;
这就像你所期望的那样有效,但我不禁觉得我被骗了,没有以正确的方式做这件事。关于如何使我的代码再次完整的任何想法?