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输出时间差函数代码
Jan 28 PHP
php去除换行符的方法小结(PHP_EOL变量的使用)
Feb 16 PHP
PHP内置过滤器FILTER使用实例
Jun 25 PHP
php提示Warning:mysql_fetch_array() expects的解决方法
Dec 16 PHP
php正则preg_replace_callback函数用法实例
Jun 01 PHP
Smarty模板简单配置与使用方法示例
May 23 PHP
php gd等比例缩放压缩图片函数
Jun 12 PHP
使用PHP json_decode可能遇到的坑与解决方法
Aug 03 PHP
php实现微信企业付款到个人零钱功能
Oct 09 PHP
ThinkPHP5 的简单搭建和使用详解
Nov 15 PHP
PHP标准库(PHP SPL)详解
Mar 16 PHP
laravel-admin解决表单select联动时,编辑默认没选上的问题
Sep 30 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 分页类 扩展代码
2009/06/11 PHP
php上传文件,创建递归目录的实例代码
2013/10/18 PHP
PHP中的session安全吗?
2016/01/22 PHP
Laravel框架运行出错提示RuntimeException No application encryption key has been specified.解决方法
2019/04/02 PHP
javascript 语法基础 想学习js的朋友可以看看
2009/12/16 Javascript
JS代码优化技巧之通俗版(减少js体积)
2011/12/23 Javascript
用js的for循环获取radio选中的值
2013/10/21 Javascript
为指定的元素添加遮罩层的示例代码
2014/01/15 Javascript
离开当前页面前使用js判断条件提示是否要离开页面
2014/05/02 Javascript
jquery实现简单的全选和反选功能
2016/01/02 Javascript
JavaScript知识点总结(四)之逻辑OR运算符详解
2016/05/31 Javascript
如何在JS中实现相互转换XML和JSON
2016/07/19 Javascript
简单实现JS上传图片预览功能
2017/04/14 Javascript
简单谈谈axios中的get,post方法
2017/06/25 Javascript
ExtJs使用自定义插件动态保存表头配置(隐藏或显示)
2018/09/25 Javascript
js实现掷骰子小游戏
2019/10/24 Javascript
在Vue项目中,防止页面被缩放和放大示例
2019/10/28 Javascript
微信小程序中使用 async/await的方法实例分析
2020/05/06 Javascript
解决vue动态路由异步加载import组件,加载不到module的问题
2020/07/26 Javascript
微信小程序实现点击生成随机验证码
2020/09/09 Javascript
[03:31]DOTA2英雄基础教程 大地之灵
2013/12/17 DOTA
[08:54]DOTA2-DPC中国联赛 正赛 Aster vs LBZS 选手采访
2021/03/11 DOTA
python中zip()方法应用实例分析
2016/04/16 Python
python读取有密码的zip压缩文件实例
2019/02/08 Python
linux环境下Django的安装配置详解
2019/07/22 Python
浅谈Django2.0 加xadmin踩的坑
2019/11/15 Python
python返回数组的索引实例
2019/11/28 Python
CSS3 filter(滤镜)实现网页灰色或者黑色模式的示例代码
2021/02/24 HTML / CSS
Shopee马来西亚:随拍即卖,最佳行动电商拍卖平台
2017/06/05 全球购物
学生生病请假条范文
2014/02/16 职场文书
开学寄语大全
2014/04/08 职场文书
卫生系统先进事迹
2014/05/13 职场文书
解除施工合同协议书
2014/10/17 职场文书
员工家属慰问信
2015/03/24 职场文书
在职证明范本
2015/06/15 职场文书
Python 数据可视化之Matplotlib详解
2021/11/02 Python