为什么我不能设置课程'它的父母的构造函数中的属性? (PHP)

时间:2015-12-23 06:52:15

标签: php class parent-child extends php-5.2

我一直在关注无框架php教程(相关章节:https://github.com/PatrickLouys/no-framework-tutorial/blob/master/07-inversion-of-control.md)。在扩展它的同时,作为一个简短的例子,当我实例化类的各种属性时,一切正常:

use Http\Request;

class User extends Super_user
{
    private $request; 

    public function __construct(Request $request)
    {
        parent::__construct();
        $this->request = $request;
    }
}

然而,当我尝试在父级中设置请求时,我似乎得到了错误:参数1传递给Namespace \ Controllers \ Super_user :: __ construct()必须是Namespace \ Template \ Request的实例,没有给定,调用在......

class User extends Super_user
{

    public function __construct()
    {
        parent::__construct();
    }
}

...

use Http\Request;

class Super_user
{
    public function __construct()
    {
        $this->request = $request;
    }

}

任何对PHP都不熟悉的人都会非常感激。

1 个答案:

答案 0 :(得分:1)

由于Super_user类在其构造函数中需要Request对象。 您应该像这样声明用户的构造函数方法

TreeSet(2, 3, 5)
TreeSet(3, 5)
TreeSet(2)
TreeSet(2, 3)
TreeSet(2, 3)
TreeSet(2, 3, 5)
TreeSet(3, 5)
TreeSet(2)
TreeSet(2, 3)
TreeSet(2, 3)