Лучшее объяснение $ this-> в этом примере, пожалуйста - PullRequest
1 голос
/ 09 апреля 2010

Ссылка на этот вопрос: 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 ]

2 голосов
/ 09 апреля 2010

Доступ к этой переменной для этого экземпляра класса / объекта. Допустим, вы создали новый экземпляр класса, написав $something = new Form();. Теперь, когда вы используете функцию в классе, вызывая ее с помощью $ something-> functionname (); функция будет ссылаться на экземпляр $ что-то, когда скажет это. Самое замечательное в таких объектах - то, что функции могут обращаться к переменным друг друга.

1 голос
/ 09 апреля 2010

Как определено к вершине класса, $this->inputs является массивом. В PHP вы добавляете массив, помещая [] после имени массива и присваивая ему. Итак, это добавление к $this->inputs.

0 голосов
/ 09 апреля 2010
$this->inputs[] = array("type" => $type, "name" => $name);

помещает в конец массива $ this-> input новый элемент, который сам является массивом с двумя элементами, один с индексом «тип», а другой с индексом «имя»)

Индекс добавленного элемента является наибольшим числовым индексом в массиве $ this-> входных данных, имеющихся на данный момент, плюс один.

$ это объект класса Form, а inputs это защищенное поле этого объекта, которое становится пустым массивом при создании объекта.

0 голосов
/ 09 апреля 2010

$this->inputs = new array() определяет переменную inputs в текущем объекте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...