Я получаю вид ООП и, наконец, начал создавать их в своих сценариях. Одна вещь, которую я не понимаю, это «$ this» после создания экземпляра класса. Например, этот парень закодированы:
class Form
{
protected $inputs = array();
public function addInput($type, $name)
{
$this->inputs[] = array("type" => $type,
"name" => $name);
}
}
$form = new form();
$this->addInput("text", "username");
$this->addInput("text", "password");
Обратите внимание, что последние две строки показывают, что он использовал $ this-> addInput().
Как это отличается от $ form-> addInput? Я всегда использовал имя переменной, которую я использую, чтобы создать экземпляр класса. Я не вижу, что делает функция $ this-> function(). Как PHP знает, к какому объекту он относится?
Из того, что я понимаю, $ this-> var используется в любых методах внутри этого объекта. Если нет $ this-> var, а довольно простая переменная $, то она не может использоваться в других методах, кроме метода, который имеет эту переменную $, правильно?
родственный: https://stackoverflow.com/questions/2035449/why-is-oop-hard-for-me/3689613#3689613
Ум, я думаю, что код неправильный. Он должен вызывающе быть '$ form->' not '$ this->' для последних двух строк. – Petah
Возможный дубликат [что означает это значение в определении класса?] (Http://stackoverflow.com/questions/3776696/what-does-this-mean-within-a-class-definition) – Gordon