首页 > Web开发 > 详细

php中的魔术方法总结

时间:2015-03-27 00:52:50      阅读:254      评论:0      收藏:0      [点我收藏+]

//声明一个类MagicTest

class MagicTest{

    protected $arr = new array();

//__set()和__get()

    public function __set($key,$value){

         $arr[$key] = $value;   

    }

    public function __get($key){

         return this->$arr[key];

    }

 

//__call()和__callStatic()

    public function __call($name, $arguments){

        echo "calling ".$name."with parameters: ".implode(‘,‘,$arguments);

    }

    public static function __callStatic($name,$arguments){

         echo "calling static  function: ".$name."with parameters: ".implode(‘,‘,$arguments);

    }

 

//__tostring()和__invoke()

    public function __tostring(){

    }

    public function __invoke($name){  

    }

}

$obj = new MagicTest();

 

$obj->val = test;//__set($key,$value)被调用

echo $obj->val;//__get()被调用

 

$obj->runtest(param1,param2);//__call($name,$arguments)被调用

MagicTest::runtest(param1,param2,param3); //__callStatic($name,$arguments)被调用

 

echo $obj; //tostring()被调用

$obj(param);    //invoke($name)被调用

对象属性的操作:

__set();

__get();

对象方法的造作

__call();

__callStatic();

对对象本身的操作

__tostring()

__invoke()

 

php中的魔术方法总结

原文:http://www.cnblogs.com/canfengyiyue/p/4370388.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!