Class 将 DateTime 调用扩展到父构造函数并获取 NULL

Class extending DateTime calls to parent constructor and gets NULL

我正在尝试创建一个 class 来扩展 DateTime 以实现调用父对象的构造函数。 这总是 return NULL 而不是对象的实例。这种行为的原因是什么?

class TimeHandler extends DateTime{
        
       public function __construct(){
            $somevar = parent::__construct();
            echo gettype($somevar); //This always outputs NULL instead of object
        } 

}

$instanTH = new TimeHandler();

如果您不想在 parent::__construct() 中做任何事情,则在 class 扩展中不需要构造函数。

class TimeHandler extends DateTime{}       

$instanceTH = new TimeHandler('today UTC');

var_dump($instanceTH);
//object(TimeHandler)#2 (3) { ["date"]=> string(26) "2020-10-16 00:00:00.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(3) "UTC" }

如果扩展包含构造函数,则还必须在该扩展中执行具有所有必要参数的父 :: __ 构造,以便正确初始化扩展对象。

class TimeHandler extends DateTime{
  
  public function __construct($dt = null, $timeZone = null){

    parent::__construct($dt, $timeZone);

  }
  
}       

可以找到 DateTime 扩展的示例 here