public function __construct() {
parent::__construct();
$this->load->config("master");
$this->oops();
$this->database();
$this->load->config("lang");
$this->load->model("functions");
}
代码有什么问题?我不知道什么是错的! 任何人都可以帮我吗?
对不起我的英语,我来自德国!
答案 0 :(得分:9)
parent::
用于访问方法的父类实现。你的班级没有父母,因为它没有extend
任何班级。因此错误。
class Foo {
public function bar() {
echo 'bar';
}
}
class Baz extends Foo {
public function bar() {
parent::bar();
echo 'baz';
}
}
这里parent
有意义,因为有一个父类。
class Foo {
public function bar() {
parent::bar();
}
}
这里parent
没有意义,因为没有父,因此错误。因为它没有意义并且没有任何意义,所以只需删除它即可。
答案 1 :(得分:3)
您需要扩展父类才能使用它的'构造
class migration extends PARENTCLASS {
function __construct() {
parent::__construct();
.......
}
答案 2 :(得分:2)
对于遇到此错误的任何人,即使您不打算从父级继承,或者您确实从父级继承,也完全有可能因错误的切割而导致此错误 - 片段。
例如。如果您剪切并粘贴了一些__construct()代码并且无意中将代码包含在其中,那么您将收到此错误。注意是否正在扩展类,然后删除错误的代码。
class Subscription /* this class not intended to be extended */
{
public function __construct()
{
parent::__construct();/* <--- erroneous paste code */
$this->states = new ArrayCollection();
$this->clusters = new ArrayCollection();
}
即使您可能正确使用了parent :: __ construct(),它也可能被错误地粘贴到您未查看的另一个类中(不那么明显)。
答案 3 :(得分:0)
下午好,希望对我的解决方案有所帮助。我遇到了同样的问题,我的解决方案是用$ this-> jsonSerialize()
替换显示父错误的文件。public function jsonSerialize(){
if (get_parent_class() == ""){
return $values;
}
else{
return array_merge(parent::jsonSerialize(), $values);
}
}
这就是变化
public function jsonSerialize(){
if (get_parent_class() == ""){
return $values;
}
else{
return array_merge($this->jsonSerialize(), $values);
}
}