例如…
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的比较).
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。