1、使用命名空间:别名/导入
<?php
namespace foo;
use My\Full\Classname as Another;
// 下面的例子与 use My\Full\NSname as NSname 相同
use My\Full\NSname;
// 导入一个全局类
use ArrayObject;
// importing a function (PHP 5.6+)导入一个函数
use function My\Full\functionName;
// aliasing a function (PHP 5.6+)导入一个函数,起别名
use function My\Full\functionName as func;
// importing a constant (PHP 5.6+)导入一个常量
use const My\Full\CONSTANT;
2、use关键字在闭包中的使用
匿名函数(闭包函数)是一个独立的命名空间,你不能访问这个命名空间之外的变量,使用use关键字可以把外部的变量 带到这个命名空间中。可以通过使用 & 符号来声明指针变量。
<?php
//访问外部变量
$validata1 = "相对于闭包函数,我是外部变量!";
$closeure1 = function($param1) use($validata1){
//打印外部变量
echo "我是参数param1:".$param1."\n";
echo "我是外部变量validata1:".$validata1;
}
//引用外部变量的指针 -- 删除一个目录下的子目录和文件
$deleteDirectory = null;//声明一个外部变量
$deleteDirectory = function($path) use (&$deleteDirectory) {//给外部变量赋值,并引用外部变量(引用了自己)
$resource = opendir($path);
while (($item = readdir($resource)) !== false) {
if ($item !== "." && $item !== "..") {
if (is_dir($path . "/" . $item)) {
$deleteDirectory($path . "/" . $item);//迭代循环
} else {
unlink($path . "/" . $item);
}
}
}
closedir($resource);
rmdir($path);
};
$deleteDirectory("path/to/directoy");