在PHP类内外使用use语句导入特性
为什么我们应该使用在PHP类内外使用use语句导入特性,php,laravel,traits,Php,Laravel,Traits,为什么我们应该使用use语句在类外导入特征,然后在类内再次使用它 示例(在Laravel用户模型中): 为什么特征的处理方式与其他类不同,我们只需在类外部导入一次名称空间,就可以直接使用它 使用类外来包含使用命名空间的实际类。因此,它只是包含在该类中,但尚未在该类中使用 如果您真的需要在类内使用该类,那么您需要在类内使用该类 您可以通过以下方式省略类外的用法 使用Illumb\Database\Elount\SoftDeletes 直接在类内部。使用类外部包含使用名称空间的实际类。因此,它只是包
use
语句在类外导入特征,然后在类内再次使用它
示例(在Laravel用户模型中):
为什么特征的处理方式与其他类不同,我们只需在类外部导入一次名称空间,就可以直接使用它 使用类外来包含使用命名空间的实际类。因此,它只是包含在该类中,但尚未在该类中使用 如果您真的需要在类内使用该类,那么您需要在类内使用该类 您可以通过以下方式省略类外的用法 使用Illumb\Database\Elount\SoftDeletes
直接在类内部。使用类外部包含使用名称空间的实际类。因此,它只是包含在该类中,但尚未在该类中使用 如果您真的需要在类内使用该类,那么您需要在类内使用该类 您可以通过以下方式省略类外的用法 使用Illumb\Database\Elount\SoftDeletes
直接进入类内。,因为第一个
使用
表示自动加载器已经要求使用的类。这有助于防止同名类的冲突
例如
第二个用法绑定到Trait
,表示应该在这个类中使用它。您可以在一个文件中定义多个类(不好的做法),这就是为什么您需要表明您希望在该特定类上使用Trait
class A {
use SomeTrait;
}
class B {
/// not using Trait
}
edit:知道PHP中有三种使用use
关键字的方法可能会很好,它们都有不同的含义
$product
。没有它,就无法访问函数体中的$product
变量因为第一个
use
表示自动加载器已经需要使用的类。这有助于防止同名类的冲突
例如
第二个用法绑定到Trait
,表示应该在这个类中使用它。您可以在一个文件中定义多个类(不好的做法),这就是为什么您需要表明您希望在该特定类上使用Trait
class A {
use SomeTrait;
}
class B {
/// not using Trait
}
edit:知道PHP中有三种使用use
关键字的方法可能会很好,它们都有不同的含义
$product
。没有它,就无法访问函数体中的$product
变量use
关键字在每个上下文中都有不同的含义
- 在类内部确定该类使用的特征
- 在闭包中,
用于确定要在范围内导入的变量use
- 其中,
导入一个类的名称空间以映射一个类名,也可以将别名设置为use
和use
的组合as
use
关键字在每个上下文中都有不同的含义
- 在类内部确定该类使用的特征
- 在闭包中,
用于确定要在范围内导入的变量use
- 其中,
导入一个类的名称空间以映射一个类名,也可以将别名设置为use
和use
的组合as
class A {
use SomeTrait;
}
class B {
/// not using Trait
}
use App\Models\Product;
class User
{
use SoftDeletes;
collect([])->map(function ($id) use ($product) {
// function body
});