php在变量中添加来自另一个变量的数据

时间:2015-11-24 20:30:28

标签: php

我有一个似乎不应该成为问题的问题......我实际上对于不知道这个问题感到很愚蠢,但是我会把它分解为查看相同的代码太久了...

我在我的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
);

2 个答案:

答案 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'] = "";