例如…
class Module{
var $page;
function Module($page){
$this->page = $page;
}
}
然后是一个特定的新闻模块类:
class News extends Module {
function aFunction(){
return $this->page->id;
}
}
我可以这样实例化新闻:
$page = new Page();
$news = new News($page);
还是我必须这样做:
$page = new Page();
$news = new News();
$news->page = $page;
谢谢.
PS:我是OOP PHP的新手,所以请忍受.我已经从过程性PHP转到了Objective-c,现在又回到了目标PHP. :p尝试相互比较非常困难.
解决方法:
是的,他们继承了构造函数.您可以轻松地进行自我测试.例如:
class Foo {
function __construct() {
echo "foo\n";
}
}
class Bar extends Foo {
}
运行时:
$bar = new Bar(); // echoes foo
但是,如果为类定义了自定义构造函数,则不会调用Foo的构造函数.在这种情况下,请确保调用parent :: __ construct().
class Baz extends Foo {
function __construct() {
echo "baz ";
parent::__construct();
}
}
$baz = new Baz(); // echoes baz foo
所有这些对于您的老式构造函数都是正确的(类名与__construct的比较).