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 5.0对象模型深度探索之绑定
Sep 05 PHP
详解PHP显示MySQL数据的三种方法
Jun 05 PHP
基于curl数据采集之单页面并行采集函数get_htmls的使用
Apr 28 PHP
详解PHP中strlen和mb_strlen函数的区别
Mar 07 PHP
ThinkPHP的截取字符串函数无法显示省略号的解决方法
Jun 25 PHP
ThinkPHP惯例配置文件详解
Jul 14 PHP
PHP中使用正则表达式提取中文实现笔记
Jan 20 PHP
php绘制一条弧线的方法
Jan 24 PHP
php插入含有特殊符号数据的处理方法
Nov 24 PHP
ThinkPHP模板标签eq if 中区分0,null,false的方法
Mar 24 PHP
ThinkPHP3.1.x修改成功与失败跳转页面的方法
Sep 29 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
Dec 21 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中redis的用法深入解析
2014/02/20 PHP
destoon在360浏览器下出现用户被强行注销的解决方法
2014/06/26 PHP
微信公众平台天气预报功能开发
2014/07/06 PHP
利用PHPExcel实现Excel文件的写入和读取
2017/04/26 PHP
js 兼容多浏览器的回车和鼠标焦点事件代码(IE6/7/8,firefox,chrome)
2010/04/14 Javascript
购物车选中得到价格实现示例
2014/01/26 Javascript
jquery实现适用于门户站的导航下拉菜单效果代码
2015/08/24 Javascript
jquery实现手风琴效果
2015/11/20 Javascript
JavaScript学习笔记之数组求和方法
2016/03/23 Javascript
jQuery 移动端拖拽(模块化开发,触摸事件,webpack)
2016/10/28 Javascript
jQuery插件FusionCharts实现的MSBar2D图效果示例【附demo源码】
2017/03/24 jQuery
jquery点赞功能实现代码 点个赞吧!
2020/05/29 jQuery
关于vue.js发布后路径引用的问题解决
2017/08/15 Javascript
前端跨域的几种解决方式总结(推荐)
2017/08/16 Javascript
Vue filter介绍及详细使用
2018/04/04 Javascript
垃圾回收器的相关知识点总结
2018/05/13 Javascript
浅谈微信小程序之官方UI框架we-ui使用教程
2018/08/20 Javascript
微信小程序视频弹幕发送功能的实现
2020/12/28 Javascript
深度剖析使用python抓取网页正文的源码
2014/06/11 Python
Python的Bottle框架中实现最基本的get和post的方法的教程
2015/04/30 Python
讲解Python中的标识运算符
2015/05/14 Python
python 筛选数据集中列中value长度大于20的数据集方法
2018/06/14 Python
Python并行分布式框架Celery详解
2018/10/15 Python
python判断链表是否有环的实例代码
2020/01/31 Python
Django的CVB实例详解
2020/02/10 Python
世界上最好的帽子:Tilley
2016/11/27 全球购物
美术教学感言
2014/02/22 职场文书
大学生就业自荐书
2014/06/16 职场文书
合作协议书范文
2014/08/20 职场文书
2015年清明节扫墓演讲稿
2015/03/18 职场文书
圣贤教育改变命运观后感
2015/06/16 职场文书
工程进度款催款函
2015/06/24 职场文书
党课主持词大全
2015/06/30 职场文书
校园运动会广播稿
2015/08/19 职场文书
《家世》读后感:看家训的力量
2019/12/30 职场文书
PostgreSQL存储过程实用脚本(二):创建函数入门
2021/04/05 PostgreSQL