因为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实现类函数重载相关推荐

  1. python魔术方法call_php魔术方法__call

    __call是魔术方法中的一个,当程序调用到当前类中未声明或没权限调用的方法时,就会调用__call方法 class test { public function emptyFunc(){ $getA ...

  2. php魔术方法__call

    为什么80%的码农都做不了架构师?>>>    __call是魔术方法中的一个,当程序调用到当前类中未声明或没权限调用的方法时,就会调用__call方法 class test {pu ...

  3. PHP魔术方法__call()篇

    当我们调用类中的方法时,如果方法不存在的话.__call会是运行,从而使错误不显示出来 1 header('Content-type:text/html;charset="utf-8&quo ...

  4. PHP 如何优(zhuang)雅(bi)的使用魔术方法__call()

    我们来看一下__call()方法: public function __call($function_name,$arguments){} __call()在调用的方法不存在时会被自动调用,第一个参数 ...

  5. php魔术方法call,PHP魔术方法__call()

    __call()方法的用法 function __call(string $function_name, array $arguments) { // 方法体 } 程序中调用未定义的方法时,__cal ...

  6. 以下不属于PHP的魔术方法是,PHP中魔术方法的作用是什么?

    其实还是为了更好的支持面向对象,下面是一个例子... class Tools { /** * 利用魔术方法__call实现伪重载... * @return [type] [description] * ...

  7. PHP中的常见魔术方法功能作用及用法实例

    这篇文章主要介绍了PHP中的常见魔术方法功能作用及用法实例,本文讲解了构造函数和析构函数__construct()和__desctruct()以及属性重载(Property Overloading)_ ...

  8. php魔术方法 效率,PHP常用魔术方法的性能探究

    性能往往是衡量代码很重要的一个标准.我们日常编码中经常会用到一些魔术方法,这些PHP提供的魔术方法是否会影响我们程序的性能呢?是否需要减少魔术方法 的使用呢?本文将通过测试对比来了解魔术方法对性能的影 ...

  9. PHP面向对象常见的关键字和魔术方法

    在PHP5的面向对象程序设计中提供了一些常见的关键字,用来修饰类.成员属性或成员方法,使他们具有特定的功能,例如final.static.const等关键字.还有一些比较实用的魔术方法,用来提高类或对 ...

最新文章

  1. jupyter notebook中执行命令报错No module named ‘wordcloud‘
  2. 时间字段 oracle 经验 设计,数据库设计与优化
  3. JS调用PageMethods(转)
  4. python sort 多级排序_Python sort和class实现多级排序
  5. APP网络测试要点和弱网模拟
  6. 转载:【微信小程序】 wx:if 与 hidden(隐藏元素)区别
  7. linux搭建python运行环境_centos运行.py centos5.5下搭建python开发运行环境 - Linux - 服务器之家...
  8. BZOJ3442: 学习小组
  9. Scrapy运行时出现的错误 :exception.ImportError No module named win32api
  10. 区块链应用大数据的优势有哪些
  11. 查看windows电脑CPU核心数,线程数
  12. Layui图片上传限制一张的问题
  13. 【go网络编程】-HTTP编程
  14. bios不识别 光驱固态_bios识别不到固态硬盘
  15. linux 搜狗输入法 不能使用方法,在Linux系统中Sublime Text无法使用搜狗输入法的解决方法...
  16. 利用phpstudy在网页输出学号姓名
  17. 企业如何防止激光打印机泄密?
  18. 计算机的语言是美式英语,为什么电脑的语言栏一直有两国语言“CH中文(中国)”和“EH英语(美国)”...
  19. Kibana Query Language(KQL)
  20. Unitary matrix 幺正矩阵

热门文章

  1. cge模型可以用matlab实现么,GEMPACK软件 解决CGE模型
  2. MySql如何使用索引(二)
  3. ****** 四 ******、软设笔记【数据结构】-排序、插入排序、选择排序
  4. rsync(一):基本命令和用法
  5. 用python实现接口测试(八、实现序列化与反序列化)
  6. makefile 文件 (​ http://blog.csdn.net/ruglcc/article/details/7814546/ )
  7. SQLSERVER2008--日志收缩 or 日志清理
  8. 原子变量, 无锁定且无等待算法
  9. html5 app list,让web app更快的HTML5最佳实践
  10. python携程使用_简单了解python gevent 协程使用及作用