我正在把这头发拉出来.非常新的PHP,但这是如此基本,我只是无法弄清问题在哪里.使用下面的代码片段作为示例:
class LG_Activity_Processor {
// Activity Types
const STATUS_DRAFT = 'draft';
const STATUS_PUBLISH = 'publish';
...
private $STATUS_FUTURE = 'future';
define ("STATUS_PRIVATE" , 'private');
我本来打算只使用“const”构造,因为变量在运行时之前是完全定义的,我只是认为语法比丑陋的“定义”更漂亮.问题是虽然const的定义没有给出任何错误,但每当我在类中稍后引用常量时,我都会收到以下错误消息:
PHP Notice: Use of undefined constant STATUS_PUBLISH – assumed ‘STATUS_PUBLISH’
咦?为了清楚起见,这是我用来引用“const”的语法:
$core_fields ['post_status'] = STATUS_PUBLISH;
我甚至尝试过:
$core_fields ['post_status'] = $this->STATUS_PUBLISH;
没爱.然后我进入绝望状态并最终尝试“定义”.相同的调用语法,但我将定义语法更改为上面针对“STATUS_PRIVATE”所示的语法.这使得事情变得非常值得,因为我现在在定义行上有一个致命错误,如下所示:
PHP Parse error: Syntax error, unexpected T_STRING, expecting T_FUNCTION
我放弃.我最后只是将变量定义为私有变量(如STATUS_FUTURE的示例),然后将其称为:
$core_fields ['post_status'] = $this->STATUS_PUBLISH;
这就像你期望的那样,但是我忍不住觉得自己被骗了.关于如何让我的代码重新整理的任何想法?
解决方法:
访问时应该执行LG_Activity_Processor :: STATUS_DRAFT.
看一下PHP手册,它为您提供了清晰的示例.
http://php.net/manual/en/language.oop5.constants.php
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。