我想避免为扩展类键入use语句。看起来它应该是多余的,因为父类知道类型提示的类型?
例如,我有一个父类
/* parent.php */
<?php
namespace App\ParentClass;
use App\User;
use App\Request;
class ParentClass {
public function __construct(
User $user,
Request $request
)
{
// do something
}
}
和一个儿童班
/* parent.php */
<?php
namespace App\ChildClass;
use App\ParentClass\ParentClass;
// HOW CAN I ELIMINATE HAVING TO TYPE THE use STATEMENTS HERE?
use App\User;
use App\Request;
class ChildClass extends ParentClass
{
public function __construct(
User $user,
Request $request
)
{
// do something
}
}
答案 0 :(得分:2)
扩展课程没有办法知道&#34;任意参数的命名空间,因为:
您可以在不同的名称空间中使用相同名称的类(首先是名称空间的概念)
命名空间中的代码可以使用其他命名空间中的对象
子类构造函数可以具有与父构造函数完全不同的参数。
答案 1 :(得分:1)
你不能省略这样的使用条款,
因为你在构造函数中使用了下面的I420
和User
类,所以php需要知道这些类。