PHP具有完整的反射 API,添加了对类、接口、函数、方法和扩展进行反向工程的能力。 在这里我们通过一个简单的应用来展示一下反射API的魅力。
让我们来看看如何利用反射api实现自动加载模块
首先定义一个modules接口,不同模块实现不同的execute()功能。
interface modules{
function execute();
}
接下来定义我们在这个例子中要用到的模块(要求:每个模块中都要有set+属性字符串 方法来完成模块参数的设置,而且该方法有且仅有一个参数,支持对象参数和字符串参数)。
//邮箱模块
class mailModule implements modules
{
//邮箱地址
public $address;
//设置地址方法
public function setAddress($address)
{
$this->address=$address;
}
// 模块功能,开启邮箱服务
public function execute()
{
echo "mail start<br>";
}
}
// userModule的依赖类
class user
{
public $username;
public function