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中取得image按钮传递的name值
Oct 09 PHP
PHP中str_replace函数使用小结
Oct 11 PHP
PHP 多维数组排序实现代码
Aug 05 PHP
php设计模式 Template (模板模式)
Jun 26 PHP
php eval函数用法 PHP中eval()函数小技巧
Oct 31 PHP
PHP引用符&amp;的用法详细解析
Aug 22 PHP
php 字符串压缩方法比较示例
Jan 23 PHP
ThinkPHP中U方法的使用浅析
Jun 13 PHP
Yii中CGridView关联表搜索排序方法实例详解
Dec 03 PHP
php内存缓存实现方法
Jan 24 PHP
php判断是否连接上网络的方法实例详解
Dec 14 PHP
PHP+Redis 消息队列 实现高并发下注册人数统计的实例
Jan 29 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
php2html php生成静态页函数
2008/12/08 PHP
一个很不错的PHP翻页类
2009/06/01 PHP
CodeIgniter框架中_remap()使用方法2例
2014/03/10 PHP
百度地图API使用方法详解
2015/08/25 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
jquery 回车事件实现代码
2011/08/23 Javascript
Javascript 多物体运动的实现
2014/12/24 Javascript
jquery单击事件和双击事件冲突解决方案
2016/03/02 Javascript
基于jQuery实现仿QQ空间送礼物功能代码
2016/05/24 Javascript
jQuery实现复选框的全选和反选
2017/02/02 Javascript
利用js判断手机是否安装某个app的多种方案
2017/02/13 Javascript
原生js实现密码输入框值的显示隐藏
2017/07/17 Javascript
浅谈Angular路由复用策略
2017/10/04 Javascript
使用node.js实现微信小程序实时聊天功能
2018/08/13 Javascript
简单说说angular.json文件的使用
2018/10/29 Javascript
nodejs同步调用获取mysql数据时遇到的大坑
2019/03/02 NodeJs
Js通过AES加密后PHP用Openssl解密的方法
2019/07/12 Javascript
vue 导航菜单刷新状态不消失,显示对应的路由界面操作
2020/08/06 Javascript
[00:52]DOTA2齐天大圣预告片
2016/08/13 DOTA
python使用正则表达式替换匹配成功的组
2017/11/17 Python
Python 读取某个目录下所有的文件实例
2018/06/23 Python
Python hashlib模块的使用示例
2020/10/09 Python
CSS3中Color的一些特性介绍
2012/05/27 HTML / CSS
CSS3 mask 遮罩的具体使用方法
2017/11/03 HTML / CSS
L’urv官网:精品女性运动服品牌
2019/07/07 全球购物
市场营销毕业生自荐信
2013/11/23 职场文书
心理健康教育制度
2014/01/27 职场文书
四风自我剖析材料
2014/09/30 职场文书
2014年加油站工作总结
2014/12/04 职场文书
保送生自荐信
2015/03/06 职场文书
法制教育观后感
2015/06/17 职场文书
2016年学校禁毒宣传活动工作总结
2016/04/05 职场文书
2019垃圾分类宣传口号汇总
2019/08/16 职场文书
中秋节作文(五年级)之关于月亮
2019/09/11 职场文书
《初涉尘世》读后感3篇
2020/01/10 职场文书
Python面试不修改数组找出重复的数字
2022/05/20 Python