是否有可能抽象类强制它的子项在PHP中有一个构造函数?
发布时间:2020-12-13 22:44:13 所属栏目:PHP教程 来源:网络整理
导读:我想做这样的事情: abstract class Foo{ public function __construct() { echo 'This is the parent constructor'; } abstract function __construct();}class Bar extends Foo{ // constructor is required as this class extends Foo public function __
我想做这样的事情:
abstract class Foo { public function __construct() { echo 'This is the parent constructor'; } abstract function __construct(); } class Bar extends Foo { // constructor is required as this class extends Foo public function __construct() { //call parent::__construct() if necessary echo 'This is the child constructor'; } } 但是这样做时会出现致命错误: Fatal error: Cannot redeclare Foo::__construct() in Foo.php on line 8 还有另一种方法可以确保子类具有构造函数吗? 解决方法
总之没有.可以通过abstract关键字声明非魔术方法.
如果要使用旧的构造函数方法,请创建一个与该类同名的方法,并将其声明为abstract.这将在实例化类时调用. 例: abstract class Foo { public function __construct() { echo 'This is the parent constructor'; } abstract function Bar(); } class Bar extends Foo { // constructor is required as this class extends Foo public function Bar() { parent::__construct(); echo 'This is the child constructor'; } } 我建议使用接口来实现您的功能. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- PHP编程:使用新浪微博API的OAuth认证发布微博实例
- php打开远程文件的方法和风险及解决方法
- php – 数组和foreach
- php – Codeigniter $this-> db-> join与$this-&
- php – PDO的多个插入
- phpMyAdmin以十六进制显示varbinary列,尽管“以十六进制显示
- PHP自定义函数实现assign()数组分配到模板及extract()变量分
- php – 严格标准:mysqli_next_result()错误与mysqli_multi
- 我可以用通配符取消设置PHP $_SESSION {}变量吗?
- PHP编程:PHP脚本监控Nginx 502错误并自动重启php-fpm