1、命名空间
代码示例
<?php
namespace user\name;
class Name{
public static function name(){
return "我是张三";
}
}
//非限定名称
echo Name::name();
echo "<hr>";
namespace user\sex;
class Name{
public static function name(){
return "我是李四";
}
}
echo "<hr>";
namespace user\age;
class Name{
public static function name(){
return "我是王五";
}
}
//完全限定名称
echo \user\name\Name::name()."<br>";
echo \user\sex\Name::name()."<br>";
echo \user\age\Name::name();
echo "<hr>";
namespace user;
//限定名称
echo sex\aaa::name() ;
namespace user\sex;
class aaa{
public static function name(){
return "我是aaa";
}
}
?>
2、命名空间别名、类别名
代码示例
<?php
namespace user{
class name{
public static function name(){
return "我是张三";
}
}
class age{
public static function age(){
return "23岁";
}
}
}
namespace Infor{
//命名空间别名
use user as U;
echo U\name::name();
echo "<hr>";
//命名类别名
use user\age as N;
echo N::age();
}
?>
3、类文件的自动加载类实现
- spl_autoload_register() 函数可以注册任意数量的自动加载器,当使用尚未被定义的类(class)和接口(interface)时自动去加载
代码示例
<?php
try {
spl_autoload_register(function($className){
$path = str_replace('\\', DIRECTORY_SEPARATOR, $className);
$file = __DIR__ . DIRECTORY_SEPARATOR . $path . '.php';
require $file;
});
} catch (Exception $e) {
die($e->getMessage());
}
use lib\demo;
echo demo::say();
?>
学习总结
本节课我们学习了命名空间、类文件的自动加载类实现的知识,学到了非限定名称、限定名称、完全限定名称的知识以及使用,学到了自动加载器的知识以及使用,希望通过以后实战进行强化和灵活运用。