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 相关文章推荐
CodeIgniter php mvc框架 中国网站
May 26 PHP
php自动跳转中英文页面
Jul 29 PHP
php 文章采集正则代码
Dec 28 PHP
phpMyAdmin出现无法载入 mcrypt 扩展,请检查PHP配置的解决方法
Mar 26 PHP
win7+apache+php+mysql环境配置操作详解
Jun 10 PHP
解析PHP工厂模式的好处
Jun 18 PHP
phplot生成图片类用法详解
Jan 06 PHP
PHP中文乱码解决方案
Mar 05 PHP
Zend Framework教程之配置文件application.ini解析
Mar 10 PHP
php基于自定义函数记录log日志方法
Jul 21 PHP
PHP开发实现微信退款功能示例
Nov 25 PHP
PHP8.0新功能之Match表达式的使用
Jul 19 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
php 随机数的产生、页面跳转、件读写、文件重命名、switch语句
2009/08/07 PHP
PHP5多态性与动态绑定介绍
2015/04/03 PHP
jquery attr 设定src中含有&amp;(宏)符号问题的解决方法
2011/07/26 Javascript
jQuery EasyUI API 中文文档 - Draggable 可拖拽
2011/09/29 Javascript
用Jquery实现滚动新闻
2014/02/12 Javascript
12306验证码破解思路分享
2015/03/25 Javascript
AngularJS 工作原理详解
2016/08/18 Javascript
基于js粘贴事件paste简单解析以及遇到的坑
2017/09/07 Javascript
javascript字体颜色控件的开发 JS实现字体控制
2017/11/27 Javascript
Bootstrap 模态框多次显示后台提交多次BUG的解决方法
2017/12/26 Javascript
解决微信小程序调用moveToLocation失效问题【超简单】
2019/04/12 Javascript
node.js中stream流中可读流和可写流的实现与使用方法实例分析
2020/02/13 Javascript
python代码制作configure文件示例
2014/07/28 Python
Python批量按比例缩小图片脚本分享
2015/05/21 Python
在Django中编写模版节点及注册标签的方法
2015/07/20 Python
Python算法应用实战之队列详解
2017/02/04 Python
Ubuntu16.04/树莓派Python3+opencv配置教程(分享)
2018/04/02 Python
安装好Pycharm后如何配置Python解释器简易教程
2019/06/28 Python
Django中celery执行任务结果的保存方法
2019/07/12 Python
Python&amp;&amp;GDAL实现NDVI的计算方式
2020/01/09 Python
基于python实现获取网页图片过程解析
2020/05/11 Python
PyQt5实现简单的计算器
2020/05/30 Python
10个python爬虫入门实例(小结)
2020/11/01 Python
Python 爬虫批量爬取网页图片保存到本地的实现代码
2020/12/24 Python
英国天然宝石首饰购买网站:Gemondo Jewellery
2018/10/23 全球购物
餐饮部总监岗位职责范文
2014/02/13 职场文书
《两个铁球同时着地》教学反思
2014/02/13 职场文书
公司活动方案范文
2014/03/06 职场文书
班子成员四风问题自我剖析材料
2014/09/29 职场文书
大学生入党积极分子党校学习思想汇报
2014/10/25 职场文书
辞职信格式模板
2015/02/27 职场文书
会计出纳岗位职责
2015/03/31 职场文书
2015年银行客户经理工作总结
2015/04/01 职场文书
2015年资料员工作总结
2015/04/25 职场文书
党员进社区活动总结
2015/05/07 职场文书
2016年共产党员公开承诺书
2016/03/24 职场文书