Сожалею,
Может быть, этот вопрос уже существует, но я не смог найти. Я совсем новичок в PHP … просто мне нужно немного объяснений.
что означает следующую строку, когда мы используем много объектных операторов в одном вызове.
$variable = $this->any1->any2->any3->get_data(params);
Спасибо за ваше объяснение!
Вот пример:
class A{
private $any1; //a class B object
public function __construct(){ $this->any1=new B(); }
public function myMethod(){
$variable=$this->any1->any2->any3->get_data('aParam'); //You are here
var_dump($variable);
}
}
class B{
public $any2; //a class C object
public function __construct(){ $this->any2=new C(); }
}
class C{
public $any3; //a class D object
public function __construct(){ $this->any3=new D(); }
}
class D{
private $data=['aParam'=>'A content'];
public function get_data($params){ //Here is what you want
return $this->data[$params];
}
}
$a=new A();
$a->myMethod(); //you'll see: string(9) "A content"
Избегайте публичных атрибутов в классе, используйте методы getter и setter (там они короче).
Других решений пока нет …