PHP:是否可以调用嵌套对象';嵌套对象中的方法?
我不知道如何更好地解释这一点,所以(参见第二节课内的评论):PHP:是否可以调用嵌套对象';嵌套对象中的方法?,php,Php,我不知道如何更好地解释这一点,所以(参见第二节课内的评论): 否。对象不仅仅可以访问更高范围内的内容。您需要显式地将main传递到child: $child->child_function($this); 您已经将函数something\u other定义为public,因此您可以在创建主类的对象后访问该函数。试试这个, class main { public function something() { echo("do somethin
否。对象不仅仅可以访问更高范围内的内容。您需要显式地将
main
传递到child
:
$child->child_function($this);
您已经将函数
something\u other
定义为public,因此您可以在创建主类的对象后访问该函数。试试这个,
class main {
public function something() {
echo("do something");
}
public function something_else() {
$child=new child($this);
$child->child_function();
}
}
class child {
protected $_main;
public function __construct($main)
{$this->_main = $main;}
public function child_function() {
echo("child function");
$this->_main->something();
}
}
?>
您可以使用main扩展子对象。
这允许child通过调用$This->something()来访问父类;当它成为主类的成员,并获得对其所有属性和方法的访问权限时
<?php
class main {
public function something() {
echo("do something");
}
}
class child extends main {
public function child_function() {
echo("child function");
//is it possible to call main->something() here somehow if this class is initiated inside class main?
$this->something();
}
}
?>
这适用于所有方法。是的,您可以将
$This
(在main
中)传递给子类的构造函数。不过,要小心别吃意大利面!谢谢deceze和Mihai,我用了你的建议,效果很好。
<?php
class main {
public function something() {
echo("do something");
}
}
class child extends main {
public function child_function() {
echo("child function");
//is it possible to call main->something() here somehow if this class is initiated inside class main?
$this->something();
}
}
?>
public function __construct () {
parent::__construct();
}