我有以下代码示例,它在运行时会产生包含常量的错误。有人可以告诉我哪里出错了吗?
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
答案 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" />';
}
}