类中的PHP常量

时间:2011-05-23 02:20:56

标签: php oop class constants

我有以下代码示例,它在运行时会产生包含常量的错误。有人可以告诉我哪里出错了吗?

class Template {
  private $headers = "<link rel=\"stylesheet\" type=\"text/css\" 
  href=\"" . ROOT . "system/stylesheets/universal.css\" />";

  ... More variables and methods
}

这是我收到的错误。我确信ROOT常量是在这个类之外定义的:

Parse error: syntax error, unexpected '.', expecting ',' or ';' in <page.php> on line <line number>

感谢您的时间,
spryno724

1 个答案:

答案 0 :(得分:3)

您不能将非静态值指定为成员默认值。而你正在尝试执行动态(运行时)事物 - 字符串的连接。

class Template
{
    public static headers()
    {
        return '<link rel="stylesheet" type="text/css" href="' . ROOT . 'system/stylesheets/universal.css" />';
    }
}

用法:

$headers = Template::headers()

另外 - 我错过了你只使用实例变量,而不是常量。在这种情况下,您还可以在构造函数中使用初始化:

class Template
{
    private $headers;

    public static __construct()
    {
        $this->headers = '<link rel="stylesheet" type="text/css" href="' . ROOT . 'system/stylesheets/universal.css" />';
    }
}