【发布时间】:2016-04-26 09:14:54
【问题描述】:
class Test {
function test()
{
return 'test';
}
}
abstract class MasterAbstract {
public function __construct (Test $test)
{
$this->test = test;
}
protected function runMaster()
{
return $this->test->test();
}
}
class Child extends MasterAbstract
{
public function run()
{
return 1212;
}
}
案例一:
$c = new Child();
echo $c->run;
这里出现错误
传递给 MasterAbstract::__construct() 的参数 1 必须是一个实例 测试,没有给出
案例 2:在这种情况下,我没有为孩子或其他控制器创建任何对象。它正在工作。我正在使用 laravel 框架
class SomeotherController
{
private $ch;
public function __constructor(Child $ch)
{
$this->ch = $ch;
}
public function run()
{
return $this->ch->run();
}
}
请任何人解释这两种情况如何运作?
【问题讨论】:
标签: php laravel dependency-injection abstract-class abstract