临海市安全教育平台,江西吉安永丰,武汉办毕业证
本文实例讲述了php 使用 __call实现重载功能。分享给大家供大家参考,具体如下:
<?php /** * created by phpstorm. * user: funco * date: 17-6-9 * time: 下午1:39 */ class mulstat { // showclass 可以接受0个参数 private function showclass() { echo "this is class ".__class__; } // showstring 可以接受一个参数 private function showstring($str) { echo "string is ".$str; } // __call方法 可以获取实例化对象调用的成员函数名和向该被调函数传递的参数个数 public function __call($name, $args) { // 先判断要调用的函数名$name if($name == "showinfo"){ // 然后可以根据参数($args)数量判断调用哪个成员函数 switch(count($args)) { // count可以计算数组元素个数 case 0: $this->showclass();break; case 1: $this->showstring($args[0]);break; }// switch }// if } } //实例化mulstat类 $mulstat = new mulstat(); echo "\$mulstat->showinfo(\"funco 小风\"):\n"; $mulstat->showinfo("funco 小风"); // 两次换行 便于观察结果 echo "\n\n"; echo "\$mulstat->showinfo():\n"; $mulstat->showinfo();
运行结果:
$mulstat->showinfo("funco 小风"):
string is funco 小风$mulstat->showinfo():
this is class mulstat
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
php的instanceof和判断闭包Closure操作示例
php数组函数array_push()、array_pop()及array_shift()简单用法示例
yii2.0框架实现上传excel文件后导入到数据库的方法示例
php使用goto实现自动重启swoole、reactphp、workerman服务的代码
网友评论