php oop обход родительских :: дочерних отношений - PullRequest
1 голос
/ 26 марта 2011

мой настоящий код сложен, поэтому вот простая, но уместная иллюстрация:

class base {

  var $child1;
  var $child2;

  function xcv() {
    $this->child1 = new objChild1();
    $this->child2 = new objChild2();
  }
}

class objChild1 {
  var $fruit = "apple";
}

class objChild2 {
  function getChild1Fruit() {
    echo parent::child1->fruit;
  }
}

довольно просто, но что если objGrandchild1 хочет вызвать child2 и т. Д. ... это как parent :: parent :: child1-> fruit?

любые советы в этой области будут оценены

===== РЕДАКТИРОВАТЬ ===== Извините, я только что понял, что parent относится к использованию extension , поэтому, вероятно, не имеет к этому никакого отношения

1 Ответ

1 голос
/ 26 марта 2011

Вы поняли это правильно в редактировании, которое вы сделали.У объекта нет реализации объекта, в котором он используется. Однако эту ссылку можно получить через параметр.

class base {

  var $child1;
  var $child2;

  function xcv() {
    $this->child1 = new objChild1();
    $this->child2 = new objChild2($this);
  }
}

class objChild1 {
  var $fruit = "apple";
}

class objChild2 {
  objChild2($parent) {
    $this->parent = $parent;
  }
  function getChild1Fruit() {
    echo $this->parent->child1->fruit;
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...