参考这个问题: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);
}
答案 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
变量。