php用魔术方法__call实现类函数重载
因为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:请设置数组");}}
}
版权声明:本文博客原创文章,博客,未经同意,不得转载。
转载于:https://www.cnblogs.com/blfshiye/p/4690521.html
php用魔术方法__call实现类函数重载相关推荐
- python魔术方法call_php魔术方法__call
__call是魔术方法中的一个,当程序调用到当前类中未声明或没权限调用的方法时,就会调用__call方法 class test { public function emptyFunc(){ $getA ...
- php魔术方法__call
为什么80%的码农都做不了架构师?>>> __call是魔术方法中的一个,当程序调用到当前类中未声明或没权限调用的方法时,就会调用__call方法 class test {pu ...
- PHP魔术方法__call()篇
当我们调用类中的方法时,如果方法不存在的话.__call会是运行,从而使错误不显示出来 1 header('Content-type:text/html;charset="utf-8&quo ...
- PHP 如何优(zhuang)雅(bi)的使用魔术方法__call()
我们来看一下__call()方法: public function __call($function_name,$arguments){} __call()在调用的方法不存在时会被自动调用,第一个参数 ...
- php魔术方法call,PHP魔术方法__call()
__call()方法的用法 function __call(string $function_name, array $arguments) { // 方法体 } 程序中调用未定义的方法时,__cal ...
- 以下不属于PHP的魔术方法是,PHP中魔术方法的作用是什么?
其实还是为了更好的支持面向对象,下面是一个例子... class Tools { /** * 利用魔术方法__call实现伪重载... * @return [type] [description] * ...
- PHP中的常见魔术方法功能作用及用法实例
这篇文章主要介绍了PHP中的常见魔术方法功能作用及用法实例,本文讲解了构造函数和析构函数__construct()和__desctruct()以及属性重载(Property Overloading)_ ...
- php魔术方法 效率,PHP常用魔术方法的性能探究
性能往往是衡量代码很重要的一个标准.我们日常编码中经常会用到一些魔术方法,这些PHP提供的魔术方法是否会影响我们程序的性能呢?是否需要减少魔术方法 的使用呢?本文将通过测试对比来了解魔术方法对性能的影 ...
- PHP面向对象常见的关键字和魔术方法
在PHP5的面向对象程序设计中提供了一些常见的关键字,用来修饰类.成员属性或成员方法,使他们具有特定的功能,例如final.static.const等关键字.还有一些比较实用的魔术方法,用来提高类或对 ...
最新文章
- jupyter notebook中执行命令报错No module named ‘wordcloud‘
- 时间字段 oracle 经验 设计,数据库设计与优化
- JS调用PageMethods(转)
- python sort 多级排序_Python sort和class实现多级排序
- APP网络测试要点和弱网模拟
- 转载:【微信小程序】 wx:if 与 hidden(隐藏元素)区别
- linux搭建python运行环境_centos运行.py centos5.5下搭建python开发运行环境 - Linux - 服务器之家...
- BZOJ3442: 学习小组
- Scrapy运行时出现的错误 :exception.ImportError No module named win32api
- 区块链应用大数据的优势有哪些
- 查看windows电脑CPU核心数,线程数
- Layui图片上传限制一张的问题
- 【go网络编程】-HTTP编程
- bios不识别 光驱固态_bios识别不到固态硬盘
- linux 搜狗输入法 不能使用方法,在Linux系统中Sublime Text无法使用搜狗输入法的解决方法...
- 利用phpstudy在网页输出学号姓名
- 企业如何防止激光打印机泄密?
- 计算机的语言是美式英语,为什么电脑的语言栏一直有两国语言“CH中文(中国)”和“EH英语(美国)”...
- Kibana Query Language(KQL)
- Unitary matrix 幺正矩阵
热门文章
- cge模型可以用matlab实现么,GEMPACK软件 解决CGE模型
- MySql如何使用索引(二)
- ****** 四 ******、软设笔记【数据结构】-排序、插入排序、选择排序
- rsync(一):基本命令和用法
- 用python实现接口测试(八、实现序列化与反序列化)
- makefile 文件 (​ http://blog.csdn.net/ruglcc/article/details/7814546/ )
- SQLSERVER2008--日志收缩 or 日志清理
- 原子变量, 无锁定且无等待算法
- html5 app list,让web app更快的HTML5最佳实践
- python携程使用_简单了解python gevent 协程使用及作用