php 语言特性学习(四)

发布时间:2019-08-07 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php 语言特性学习(四)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

1.使用映射执行授权模式

 class ClassOne {
      function callClassOne() {
        PRint "in class onen";
    }
}

class ClassTwo {
    function callClassTwo() {
        print "in class two";
    }
}

class ClassOneDelgater {
    private $target;
    function __construct() {
        $this->target[] = new ClassOne();
    }

    function addObject($obj) {
        $this->target[] = $obj;
    }

    function __call($name,$args) {
        foreach ($this->target as $obj) {
            $r = new ReflectionClass($obj);
            try {
                if($method = $r->getMethod($name)) {
                    if($method->isPublic()) {
                        return $method->invoke($obj,$args);
                    }
                }
            }catch(Exception $e) {
                //print $e->getMessage();
            }
        }
    }
}

$obj = new ClassOneDelgater();
$obj->addObject(new ClassTwo());
//VAR_dump($obj->target);
$obj->callClassOne();
$obj->callClassTwo();

结果是

in class one 
in class two 

2.函数,类,变量

php遇到未定义的变量或者常量时会继续运行,但是它一旦遇到未定义的函数或者类时就会终止执行

在类中有一个特例。如果用户定义__autoload函数,他在Php调用未定义的类时,会通过__autoload返回该类的定义,新加载的类将会被使用,不会出错

脚本宝典总结

以上是脚本宝典为你收集整理的php 语言特性学习(四)全部内容,希望文章能够帮你解决php 语言特性学习(四)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。