我有一个似乎不应该成为问题的问题......我实际上对于不知道这个问题感到很愚蠢,但是我会把它分解为查看相同的代码太久了...
我在我的OOP类中声明了一些标准变量,这些变量可以帮助我在其他变量中节省一点空间,但是我得到了一个T_VARIABLE错误。有没有不同的方法可以做到这一点?谢谢!
private $default_struc = array(
"attributes" => array(
"label" => "",
"id" => "",
"title" => "",
"class" => "",
"required" => "",
"rel" => ""
), #end attributes
"properties" => array(
"disabled" => false
) #end properties
);
private $input_struc = array(
$this -> default_struc
);
答案 0 :(得分:1)
你的问题在这里:
private $input_struc = array(
$this -> default_struc
);
你可以只分配一个直接值,而不是一个存储在另一个var中的值,或者从一个函数/方法返回的值,或者连接起来的... ...看一下php docs,你会发现很多例子,你可以看到,在做什么工作
您可以为此实现getter方法。下面是一个示例:
// if you are using this only IN the class, you can keep it private
private function getInputStruc() {
return array_merge(
$this->default_struc,
array(
/*something*/
)
);
}
答案 1 :(得分:1)
所以在阅读完PHP文档之后,我解决了这个问题。我不知道它是否是最好的解决方案,但在这里它是否有助于其他任何人。
private $default_struc = array(
"attributes" => array(
"label" => "",
"id" => "",
"title" => "",
"class" => "",
"required" => "",
"rel" => ""
), #end attributes
"properties" => array(
"disabled" => false
) #end properties
);
private $input_struc = array();
因为它是一个课程,所以我使用__construct
来实现我想要的效果。
function __construct($title, $action = "", $name = "", $rel = ""){
$this -> input_struc = array_merge($this -> default_struc, $this -> input_struc);
$this -> input_struc['attributes']['type'] = "";
$this -> input_struc['attributes']['value'] = "";