本文介绍了PHP反射机制的使用,供大家参考:

演示样例代码如下所示:


< PHP
类一级{
功能callclassone(){
打印在第一类;
}
}
类classonedelegator {
私人目标;
功能__construct(){
美元->目标{ } =新ClassOne();
}
功能__call($name,$ args){
foreach(美元->目标为obj){
$ R =新reflectionclass($ obj);
如果($方法= r >中($name)){
如果(合法>为()!$方法->摘要()){
返回的方法->调用($ obj,$ args);
}
}
}
}
}
$ obj =新classonedelegator();
$ obj -> callclassone();
>


输出结果:



在一班

可以看出,代理类classonedelegator代替了一级类来实现他的方法。

同样,下面的代码可以运行:


< PHP
类一级{
功能callclassone(){
打印在第一类;
}
}
类classonedelegator {
私人目标;
功能AddObject($ obj){
美元->目标{ } = $ obj;
}
功能__call($name,$ args){
foreach(美元->目标为obj){
$ R =新reflectionclass($ obj);
如果($方法= r >中($name)){
如果(合法>为()!$方法->摘要()){
返回的方法->调用($ obj,$ args);
}
}
}
}
}
$ obj =新classonedelegator();
$ obj -> AddObject(New ClassOne());
$ obj -> callclassone();
>




希望本文能对大家的PHP程序设计有所帮助。