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 相关文章推荐
使用数据库保存session的方法
Oct 09 PHP
php中目录,文件操作详谈
Mar 19 PHP
php全角字符转换为半角函数
Feb 07 PHP
PHP引用(&amp;)各种使用方法实例详解
Mar 20 PHP
PHP中使用strpos函数实现屏蔽敏感关键字功能
Aug 21 PHP
ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
Aug 23 PHP
php实现用于验证所有类型的信用卡类
Mar 24 PHP
php实现将base64格式图片保存在指定目录的方法
Oct 13 PHP
thinkphp分页实现效果
Oct 13 PHP
php发送http请求的常用方法分析
Nov 08 PHP
laravel ORM关联关系中的 with和whereHas用法
Oct 16 PHP
Laravel框架之解决前端显示图片问题
Oct 24 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 正则 过滤html 的超链接
2009/06/02 PHP
php自动加载方式集合
2016/04/04 PHP
php连接oracle数据库的方法(测试成功)
2016/05/26 PHP
使用正则去除php代码中的注释方法
2016/11/03 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
javascript 内存回收机制理解
2011/01/17 Javascript
Jquery简单实现GridView行高亮的方法
2015/06/15 Javascript
Jquery修改image的src属性,图片不加载问题的解决方法
2016/05/17 Javascript
JS去掉字符串前后空格或去掉所有空格的用法
2017/03/25 Javascript
VueJs使用Amaze ui调整列表和内容页面
2017/11/30 Javascript
layer弹出层全屏及关闭方法
2018/08/17 Javascript
原生js实现淘宝放大镜效果
2020/10/28 Javascript
jQuery实现模拟搜索引擎的智能提示功能简单示例
2019/01/27 jQuery
基于Node的Axure文件在线预览的实现代码
2019/08/28 Javascript
vue学习之Vue-Router用法实例分析
2020/01/06 Javascript
如何通过javaScript去除字符串两端的空白字符
2020/02/06 Javascript
vue2.0 watch里面的 deep和immediate用法说明
2020/10/30 Javascript
python中使用smtplib和email模块发送邮件实例
2014/04/22 Python
Python原始字符串(raw strings)用法实例
2014/10/13 Python
通过数据库对Django进行删除字段和删除模型的操作
2015/07/21 Python
python实现mysql的单引号字符串过滤方法
2015/11/14 Python
tensorflow实现KNN识别MNIST
2018/03/12 Python
python 平衡二叉树实现代码示例
2018/07/07 Python
如何使用Python标准库进行性能测试
2019/06/25 Python
OpenCV模板匹配matchTemplate的实现
2019/10/18 Python
基于Python批量生成指定尺寸缩略图代码实例
2019/11/20 Python
Python通过正则库爬取淘宝商品信息代码实例
2020/03/02 Python
css3实现冲击波效果的示例代码
2018/01/11 HTML / CSS
SportsDirect.com新加坡:英国第一体育零售商
2019/03/30 全球购物
酒店采购员岗位职责
2014/03/14 职场文书
瘦西湖导游词
2015/02/03 职场文书
劳务派遣管理制度(样本)
2019/08/23 职场文书
创业计划书之珠宝饰品
2019/08/26 职场文书
如何使用Python对NetCDF数据做空间相关分析
2021/04/21 Python
能用CSS实现的就不要麻烦JavaScript了
2021/10/05 HTML / CSS
Java设计模式之代理模式
2022/04/22 Java/Android