发现 PHP 中的 “use” 关键字与多种用途相关联,例如 别名(Aliasing)、插入 特征(trait) 和在闭包(Closure)继承变量。
别名(Aliasing)
别名是通过 use 运算符完成的。它允许您使用别名或备用名称引用外部完全限定名称。
例子
请看下面的例子 -
use My\namespace\myclass as Another;
$obj = new Another;
您还可以按如下方式对 use 声明进行分组 -
use some\namespace\{ClassA, ClassB, ClassC as C};
use function some\namespace\{fn_a, fn_b, fn_c};
use const some\namespace\{ConstA, ConstB, ConstC};
特征(Trait)
借助 use 关键词,您可以将 特征(Trait)插入到类中。Trait 类似于 Class,但仅用于以精细且一致的方式对功能进行分组。无法自行实例化 Trait。
例子
请看下面的例子 -
<?php
trait mytrait {
public function hello() {
echo "Hello World from " . __TRAIT__ .;
}
}
class myclass {
use mytrait;
}
$obj = new myclass();
$obj->hello();
?>
它将产生以下输出 -
Hello World from mytrait
闭包(Closure)
闭包(Closure)也是一个匿名函数,可以借助 “use” 关键字访问其范围之外的变量。
例子
请看下面的例子 -
<?php
$maxmarks=300;
$percent=function ($marks) use ($maxmarks) {
return $marks*100/$maxmarks;
};
$m = 250;
echo "评分=$m 百分比=". $percent($m);
?>
它将产生以下输出 -
评分=250 百分比=83.333333333333