我希望在数组中解析变量,所以当我回显$ head ['meta_title']时,会显示lol。我试过用双引号包装它,但这似乎也不起作用,有什么办法围绕这个?谢谢!
我得到了意想不到的T_VARIABLE,当我使用双引号时,我得意外“”
$meta_title = "lol";
public $head = array
(
"title" => "blah",
"meta_title" => $meta_title,
"meta_content" => $meta_content
);
答案 0 :(得分:5)
您不能使用表达式初始化类属性。直到运行时才知道这两个变量的值,因此不能在声明中使用。相反,在构造函数中定义它们。
public $head = array
(
// The title as a string literal is ok...
"title" => "blah",
"meta_title" => NULL,
"meta_content" => NULL
);
// Pass them to the constructor as parameters
public function __construct($meta_title, $meta_content)
{
// Initialize them in the constructor.
$this->head['meta_title'] = $meta_title;
$this->head['meta_content'] = $meta_content;
}
类成员变量称为“属性”。您也可以使用“属性”或“字段”等其他术语来查看它们,但出于本参考的目的,我们将使用“属性”。它们通过使用public,protected或private之一,然后是普通变量声明来定义。 此声明可能包含初始化,但此初始化必须是常量值 - 也就是说,它必须能够在编译时进行评估,并且必须不依赖于运行时信息才能进行评估。强>
答案 1 :(得分:2)
如果这是在对象中,则无法以这种方式分配变量。您必须使用__construct
- 方法进行设置。
答案 2 :(得分:0)
公众需要在$ head之前被删除。我在PHP Sandbox中创建了一个例子。
http://sandbox.onlinephpfunctions.com/code/d17bc90e1291f6a3b23537984df755e40446add6