在这种情况下导致语法错误的原因是什么?

时间:2015-07-10 18:29:43

标签: php wordpress

所以我的班级开始像

final class MyWordPressSite
{

    const ROOTURL = 'http://mywebsite/mysubsite';
    const THEMEROOTURL = self::$ROOTURL . '/wp-content/themes/allytics_theme';

    function getRootUrl ( ) 
    {
        return self::ROOTURL;
    }

并且.中的self::$ROOTURL . '/wp-content/themes/mytheme';被标记为

  

语法错误:意外的标记'$ ROOTURL'

知道为什么吗?一切看起来都对我好。我安装了一个PHP语法高亮显示器,它可能会错误地标记该点。

2 个答案:

答案 0 :(得分:1)

PHP Docs

引用
  

值必须是常量表达式,而不是(例如)变量,属性,数学运算的结果或函数调用。

const THEMEROOTURL = self::$ROOTURL . '/wp-content/themes/allytics_theme';

不遵守该限制:

self::$ROOTURL不存在,因为那将是一个静态变量引用,甚至不是对先前定义的常量的引用,应该将其引用为self::ROOTURL

使用连接是一种操作(PHP 5.6.0之前不支持)

答案 1 :(得分:0)

你应该使用。

private static $ROOTURL = 'http://mywebsite/mysubsite';