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 相关文章推荐
一个用php3编写的简单计数器
Oct 09 PHP
PHP+javascript液晶时钟
Oct 09 PHP
php类
Nov 27 PHP
测试您的 PHP 水平的题目
May 30 PHP
PHP循环语句笔记(foreach,list)
Nov 29 PHP
关于Zend Studio 配色方案插件的介绍
Jun 24 PHP
PHP连接sql server 2005环境配置及问题解决
Aug 08 PHP
discuz目录文件资料汇总
Dec 30 PHP
PHP实现的oracle分页函数实例
Jan 25 PHP
PHP 获取客户端 IP 地址的方法实例代码
Nov 11 PHP
php生成短网址/短链接原理和用法实例分析
May 29 PHP
Nginx+php配置文件及原理解析
Dec 09 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
德生1994机评
2021/03/02 无线电
利用浏览器的Javascript控制台调试PHP程序
2014/01/08 PHP
PHP实现更新中间关联表数据的两种方法
2014/09/01 PHP
php短信接口代码
2016/05/13 PHP
TP5框架简单登录功能实现方法示例
2019/10/31 PHP
查询绑定数据岛的表格中的文本并修改显示方式的js代码
2009/12/15 Javascript
jquery清空textarea等输入框实现代码
2013/04/22 Javascript
javascript中的循环语句for语句深入理解
2014/04/04 Javascript
三种取消选中单选框radio的方法
2014/09/09 Javascript
js使用for循环及if语句判断多个一样的name
2014/09/09 Javascript
AngularJS基础 ng-mousemove 指令简单示例
2016/08/02 Javascript
微信小程序 摇一摇抽奖简单实例实现代码
2017/01/09 Javascript
利用Vue.js实现checkbox的全选反选效果
2017/01/18 Javascript
JS中‘hello’与new String(‘hello’)引出的问题详解
2018/08/14 Javascript
微信小程序获取音频时长与实时获取播放进度问题
2018/08/28 Javascript
Vue axios全局拦截 get请求、post请求、配置请求的实例代码
2018/11/28 Javascript
jQuery实现动态添加和删除input框实例代码
2019/03/26 jQuery
vue下载excel的实现代码后台用post方法
2019/05/10 Javascript
聊聊鉴权那些事(推荐)
2019/08/22 Javascript
vue data变量相互赋值后被实时同步的解决步骤
2020/08/05 Javascript
基于Python的接口测试框架实例
2016/11/04 Python
Python 包含汉字的文件读写之每行末尾加上特定字符
2016/12/12 Python
python3大文件解压和基本操作
2017/12/15 Python
python 集合 并集、交集 Series list set 转换的实例
2018/05/29 Python
python安装gdal的两种方法
2019/10/29 Python
Django操作session 的方法
2020/03/09 Python
python实现简单遗传算法
2020/09/18 Python
SmartBuyGlasses美国官网:太阳眼镜和眼镜
2017/08/20 全球购物
国培远程培训感言
2014/03/08 职场文书
物流专业自荐信
2014/05/23 职场文书
建筑工地文明标语
2014/10/09 职场文书
有限责任公司股东合作协议书
2014/12/02 职场文书
2014年学校体育工作总结
2014/12/08 职场文书
2015年农村党员干部主题教育活动总结
2015/03/25 职场文书
2015初中生物教研组工作总结
2015/07/21 职场文书
高中开学感言
2015/08/01 职场文书