我正在准备 ZEND 认证工程师考试。使用 TestPassport-Engine “虚拟考试”,我遇到了这个问题:
考虑以下代码。应在以粗体标记的行中使用哪个关键字以使此代码按预期工作?
abstract class Base {
protected function __construct() {}
public function create(){
// this line
return new self();
}
abstract function action();
}
class Item extends Base {
public function action () { echo __CLASS__; }
}
$item = Item::create();
$item->action();
而正确答案是static
。那么,这到底应该是什么样子呢?