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开发文件系统实例讲解
Oct 09 PHP
非常好用的两个PHP函数 serialize()和unserialize()
Feb 04 PHP
PHP daddslashes 使用方法介绍
Oct 26 PHP
如何在PHP中使用正则表达式进行查找替换
Jun 13 PHP
本地机apache配置基于域名的虚拟主机详解
Aug 10 PHP
ThinkPHP验证码使用简明教程
Mar 05 PHP
php命令行使用方法和命令行参数说明
Apr 08 PHP
Yii不依赖Model的表单生成器用法实例
Dec 04 PHP
Joomla语言翻译类Jtext用法分析
May 05 PHP
yii2安装详细流程
May 23 PHP
php探针使用原理和技巧讲解
Sep 17 PHP
PHP使用PDO实现mysql防注入功能详解
Dec 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
人族 TERRAN 概述
2020/03/14 星际争霸
PHP 判断常量,变量和函数是否存在
2009/04/26 PHP
thinkphp修改配置进入默认首页的方法
2017/02/07 PHP
jquery中each遍历对象和数组示例
2014/08/05 Javascript
js对象基础实例分析
2015/01/13 Javascript
基于canvas实现的绚丽圆圈效果完整实例
2016/01/26 Javascript
利用css+原生js制作简单的钟表
2020/04/07 Javascript
浅谈jQuery添加的HTML,JS失效的问题
2016/10/05 Javascript
纯JavaScript手写图片轮播代码
2016/10/20 Javascript
jQuery 判断元素整理汇总
2017/02/28 Javascript
浅谈es6语法 (Proxy和Reflect的对比)
2017/10/24 Javascript
Bootstrap table表格初始化表格数据的方法
2018/07/25 Javascript
vue 解决循环引用组件报错的问题
2018/09/06 Javascript
angular 表单验证器验证的同时限制输入的实现
2019/04/11 Javascript
Vue + Elementui实现多标签页共存的方法
2019/06/12 Javascript
JQuery实现简单的复选框树形结构图示例【附源码下载】
2019/07/16 jQuery
vue中的计算属性和侦听属性
2020/11/06 Javascript
[02:38]2018DOTA2亚洲邀请赛赛前采访-VGJ.T
2018/04/03 DOTA
[41:11]完美世界DOTA2联赛PWL S2 Inki vs Magma 第一场 11.22
2020/11/24 DOTA
Python简单生成8位随机密码的方法
2017/05/24 Python
python PyTorch预训练示例
2018/02/11 Python
详解Python中的各种转义符\n\r\t
2019/07/10 Python
Python 获取指定文件夹下的目录和文件的实现
2019/08/30 Python
基于python使用tibco ems代码实例
2019/12/20 Python
python如何求100以内的素数
2020/05/27 Python
使用python对excel表格处理的一些小功能
2021/01/25 Python
12个不为大家熟知的HTML5设计小技巧
2016/06/02 HTML / CSS
新加坡网上美容店:Hermo新加坡
2019/06/19 全球购物
编写类String 的构造函数、析构函数和赋值函数
2012/09/09 面试题
大学生职业生涯设计书
2014/01/02 职场文书
小学敬老月活动方案
2014/02/11 职场文书
学校四群教育实施方案
2014/06/12 职场文书
2014年社区党建工作汇报材料
2014/11/02 职场文书
2015年度环卫处工作总结
2015/07/24 职场文书
JavaScript实现淘宝商品图切换效果
2021/04/29 Javascript
python实现对doc、txt、xls等文档的读写操作
2022/04/02 Python