php 使用 __call实现重载功能示例


Posted in PHP onNovember 18, 2019

本文实例讲述了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程序设计有所帮助。

PHP 相关文章推荐
无数据库的详细域名查询程序PHP版(2)
Oct 09 PHP
php结合飞信 免费天气预报短信
May 07 PHP
php数组函数序列之prev() - 移动数组内部指针到上一个元素的位置,并返回该元素值
Oct 31 PHP
php中导出数据到excel时数字变为科学计数的解决方法
Feb 03 PHP
php gzip压缩输出的实现方法
Apr 27 PHP
php使浏览器直接下载pdf文件的方法
Nov 15 PHP
php伪静态之APACHE篇
Jun 02 PHP
为PHP5.4开启Zend OPCode缓存
Dec 26 PHP
php+ajax实现无刷新数据分页的办法
Nov 02 PHP
PHP+Ajax验证码验证用户登录
Jul 20 PHP
php 猴子摘桃的算法
Jun 20 PHP
php 提交表单 关闭layer弹窗iframe的实例讲解
Aug 20 PHP
PHP中通过getopt解析GNU C风格命令行选项
Nov 18 #PHP
php 多继承的几种常见实现方法示例
Nov 18 #PHP
Yii框架 session 数据库存储操作方法示例
Nov 18 #PHP
PHP cookie与session会话基本用法实例分析
Nov 18 #PHP
php pdo连接数据库操作示例
Nov 18 #PHP
laravel excel 上传文件保存到本地服务器功能
Nov 14 #PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
Nov 14 #PHP
You might like
输出控制类
2006/10/09 PHP
基于mysql的论坛(1)
2006/10/09 PHP
PHP笔记之:日期函数的使用介绍
2013/04/24 PHP
php如何获取文件的扩展名
2015/10/28 PHP
基于Jquery的标签智能验证实现代码
2010/12/27 Javascript
扩展JavaScript功能的正确方法(译文)
2012/04/12 Javascript
jquery 实现input输入什么div图层显示什么
2014/06/15 Javascript
Javascript原型链和原型的一个误区
2014/10/22 Javascript
JS对象与json字符串格式转换实例
2014/10/28 Javascript
用js代码和插件实现wordpress雪花飘落效果的四种方法
2014/12/15 Javascript
JavaScript File API实现文件上传预览
2016/02/02 Javascript
Web开发必知Javascript技巧大全
2016/02/23 Javascript
Vue常用指令V-model用法
2017/03/08 Javascript
jQuery插件FusionCharts实现的Marimekko图效果示例【附demo源码】
2017/03/24 jQuery
vue中的非父子间的通讯问题简单的实例代码
2017/07/19 Javascript
详解angularJS+Ionic移动端图片上传的解决办法
2017/09/13 Javascript
微信小程序chooseImage的用法(从本地相册选择图片或使用相机拍照)
2018/08/22 Javascript
vue+Vue Router多级侧导航切换路由(页面)的实现代码
2018/12/20 Javascript
VUE搭建手机商城心得和遇到的坑
2019/02/21 Javascript
使用vue实现多规格选择实例(SKU)
2019/08/23 Javascript
vue.js使用v-model实现父子组件间的双向通信示例
2020/02/05 Javascript
如何使用 Pylint 来规范 Python 代码风格(来自IBM)
2018/04/06 Python
Python tkinter的grid布局及Text动态显示方法
2018/10/11 Python
Python+OpenCV+图片旋转并用原底色填充新四角的例子
2019/12/12 Python
Pytorch 保存模型生成图片方式
2020/01/10 Python
解决Python Matplotlib绘图数据点位置错乱问题
2020/05/16 Python
python中字符串的编码与解码详析
2020/12/03 Python
使用sublime text3搭建Python编辑环境的实现
2021/01/12 Python
生物有机护肤品:Aurelia Probiotic Skincare
2018/01/31 全球购物
Otticanet英国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/02/10 全球购物
Puccini乌克兰:购买行李箱、女士手袋网上商店
2020/08/06 全球购物
学校三八妇女节活动情况总结
2014/03/09 职场文书
常务副县长“三严三实”对照检查材料思想汇报
2014/10/05 职场文书
2014年电信员工工作总结
2014/12/19 职场文书
2015年预防青少年违法犯罪工作总结
2015/05/22 职场文书
学雷锋广播稿大全
2015/08/19 职场文书