php通过魔术方法__call实现类函数重载
2014-06-08 01:27
363 查看
由于在php是弱类型语言,并不像c++一样可以通过改变函数返回值的类型和函数的参数个数进行重载!但在实际开发中可能会有重载函数的需求,为了满足开发需求,我们可以通过魔术方法__call()来实现函数重载!
class Templates { <span style="white-space:pre"> </span>function __call($fun,$argv){ <span style="white-space:pre"> </span>if($fun=="assign"){ <span style="white-space:pre"> </span>if(count($argv)==1){ <span style="white-space:pre"> </span>$this->assign1($argv[0]); <span style="white-space:pre"> </span>} elseif(count($argv)==2){ $this->assign2($argv[0],$argv[1]); } } } //assign函数接受参数 function assign2($key,$value){ if(isset($key)&&!empty($value)){ $this->val["$key"]=$value; }else{ exit("ERROR:请设置变量"); } } //重载assign函数接受数组 function assign1($array){ if(!empty($array)){ foreach($array as $key => $value){ $this->val["$key"]=$value; } }else{ exit("ERROR:请设置数组"); } } }
相关文章推荐
- php用魔术方法__call实现类函数重载
- 在PHP中通过POST方法实现文件上传功能
- PHP中的魔术方法总结 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep, __wakeup, __toString, __set_state, __clone and __autoload
- php 通过__callStatic魔术方法实现方法的动态创建和延迟绑定
- php __call方法 即使用其实现方法重载
- PHP中的__call()魔术方法2
- PHP | 魔术方法 | __toString(),__clone(),__call(),__autoload() 详解
- PHP中的魔术方法总结 :__construct,__destruct ,__call,__callStatic,__get,__set,__isset,__unset,__sleep,__wakeup, __toString.......
- php __call()魔术方法介绍
- PHP中通过调用call_user_func_array函数执行mysqli_stmt_bind_param方法时需要注意的问题
- js中通过call()和apply()方法实现继承类
- PHP魔术方法之__call与__callStatic方法
- php通过数组实现多条件查询实现方法(字符串分割)
- PHP中的魔术方法总结 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __uns
- php魔术方法之_call()
- 通过table标签,PHP输出EXCEL的实现方法
- PHP魔术方法__call()篇
- php实现工厂模式&单例模式&魔术方法&获取文件扩展名
- php的魔术方法__get(),__set(),__call(),__callStatic()以及static延迟静态绑定
- PHP魔术方法之__call与__callStatic方法