数组PHP中的变量

时间:2012-10-23 12:37:26

标签: php

我希望在数组中解析变量,所以当我回显$ head ['meta_title']时,会显示lol。我试过用双引号包装它,但这似乎也不起作用,有什么办法围绕这个?谢谢!

我得到了意想不到的T_VARIABLE,当我使用双引号时,我得意外“”

$meta_title = "lol";

public $head = array
(
    "title"        => "blah",
    "meta_title"   => $meta_title,
    "meta_content" => $meta_content
);

3 个答案:

答案 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;
}

From the docs

  

类成员变量称为“属性”。您也可以使用“属性”或“字段”等其他术语来查看它们,但出于本参考的目的,我们将使用“属性”。它们通过使用public,protected或private之一,然后是普通变量声明来定义。 此声明可能包含初始化,但此初始化必须是常量值 - 也就是说,它必须能够在编译时进行评估,并且必须不依赖于运行时信息才能进行评估。

答案 1 :(得分:2)

如果这是在对象中,则无法以这种方式分配变量。您必须使用__construct - 方法进行设置。

答案 2 :(得分:0)

公众需要在$ head之前被删除。我在PHP Sandbox中创建了一个例子。

http://sandbox.onlinephpfunctions.com/code/d17bc90e1291f6a3b23537984df755e40446add6