扩展其他类的类是否继承相同的构造函数?

例如…

如果我有一个Module类:

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的比较).

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...