php用魔术方法__call实现类函数重载
2015-07-30 20:38
761 查看
因为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 des 对称加解密类
- php rsa 非对称加解密类
- 从ftp服务器下载文件
- PHP实现文件上传,更改路径,文件名
- Zend里正则替换
- php设计模式之适配器模式
- log4php安装
- PHP的元语言编程
- ThinkPHP I方法
- PHP: chr和pack、unpack那些事
- Laravel中URL,ACTION,ROUTE区别
- PHP: 深入pack/unpack
- PHP中使用cURL实现Get和Post请求的方法
- 什么是TPS,什么是QPS,区别是什么?
- PHP中CURL方法curl_setopt()函数的一些参数
- phpstorm+Xdebug断点调试PHP
- php 常用代码段
- 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第55讲:PHP smarty模板自定义函数
- 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第54讲:PHP smarty模板内建函数
- 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第53讲:PHP smarty模板配置及变量操作