更好地解释$ this->在这个例子中请

时间:2010-04-09 03:51:34

标签: php oop

参考这个问题:https://stackoverflow.com/questions/2035449/why-is-oop-hard-for-me

class Form
{
    protected $inputs = array();
    public function makeInput($type, $name)
    {
         echo '<input type="'.$type.'" name="'.$name.'">';
    }

    public function addInput($type, $name)
    {
         $this->inputs[] = array("type" => $type,
                "name" => $name);
    }

    public function run()
   {
       foreach($this->inputs as $array)
       { 
          $this->makeInput($array['type'], $array['name'];
       }
    }
}

$form = new form();

$this->addInput("text", "username");
$this->addInput("text", "password");**

我能否更好地解释$this->input[]在这部分中所做的事情:

public function addInput($type, $name)
        {
             $this->inputs[] = array("type" => $type,
                    "name" => $name);
        }

4 个答案:

答案 0 :(得分:2)

它正在为该类/对象的实例访问该变量。因此,假设您通过编写$something = new Form();来创建该类的新实例。现在,当你使用$ something-&gt; functionname()调用它时,在类中使用一个函数;当它说出来时,该函数将依赖于$ something实例。像这样的对象的好处是函数可以访问彼此的变量。

答案 1 :(得分:1)

正如在课程顶部定义的那样,$this->inputs是一个数组。在PHP中,通过将[]放在数组名称之后并分配给它来附加到数组。因此,它会附加到$this->inputs

答案 2 :(得分:0)

$this->inputs[] = array("type" => $type, "name" => $name);

数组末尾的位置$ this-&gt;输入新元素,它本身是一个带有两个元素的数组,一个索引为“type”,另一个索引为“name”)

添加元素的索引是目前为止输入的数组$ this-&gt;中的最高数字索引加上一个。

$ this是Form类的对象,inputs是此对象的受保护字段,在创建对象时变为空数组。

答案 3 :(得分:-1)

$this->inputs = new array()正在定义当前对象中的inputs变量。