Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:很认真, 后面的课程 会越来越有意思的
namespace 空间名称
;namespace 空间名称 {//代码}
use 命名空间名称 as 别名
//定义第一个命名空间
namespace test\A;
class PersonInfo {
public static $name = '小明';
}
//定义第二个命名空间
namespace test\B;
class PersonInfo {
public static $name = '小红';
}
//使用完全限定名称访问另一个空间的成员
echo \test\A\PersonInfo::$name;
//定义第一个命名空间
namespace test\A;
class PersonInfo {
public static $name = '小明';
}
//使用限定名称访问另一个空间的成员
echo B\PersonInfo::$name;
//定义第二个命名空间
namespace test\A\B;
class PersonInfo {
public static $name = '小红';
}
//定义命名空间
namespace test\B;
class PersonInfo {
public static $name = '小红';
}
//使用非限定名称访问当前命名空间
echo PersonInfo::$name;
//定义第一个命名空间
namespace test\A;
class PersonInfo {
public static $name = '小明';
}
//定义第二个命名空间
namespace test\B;
class PersonInfo {
public static $name = '小红';
}
//定义第三个命名空间
namespace test\C;
use test\A as A; //空间级的别名
use test\B as B; //空间级的别名
echo A\PersonInfo::$name;
echo B\PersonInfo::$name;
echo '<br>';
use test\A\PersonInfo as P1; //类级的别名
use test\B\PersonInfo as P2; //类级的别名
echo P1::$name;
echo P2::$name;
try {
spl_autoload_register(function($className) {
//1. 将类名中的命名空间的分隔符转为目录分隔符
$path = str_replace('\\', DIRECTORY_SEPARATOR, $className);
//2. 生成真正要加载的类文件名称
$file = __DIR__ . DIRECTORY_SEPARATOR . $path . '.php';
//3. 加载这个文件
require $file;
});
} catch (Exception $e) {
die($e->getMessage());
}
namespace pub\putong;
class PersonInfo {
public static function getName() {
return '小明';
}
}
//封装自动加载器
require 'autoload.php';
use pub\putong\PersonInfo;
echo PersonInfo::getName();