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数组函数序列之array_combine() - 数组合并函数使用说明
Oct 29 PHP
header跳转和include包含问题详解
Sep 08 PHP
PHP获取网页标题的3种实现方法代码实例
Apr 11 PHP
PHP多个文件上传到服务器实例
Oct 29 PHP
php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法
Oct 20 PHP
学习php设计模式 php实现抽象工厂模式
Dec 07 PHP
PHP中spl_autoload_register()函数用法实例详解
Jul 18 PHP
PHP防止图片盗用(盗链)的方法小结
Nov 11 PHP
PHP模糊查询技术实例分析【附源码下载】
Mar 07 PHP
Laravel5.4简单实现app接口Api Token认证方法
Aug 29 PHP
Laravel Eloquent分表方法并使用模型关联的实现
Nov 25 PHP
tp5.1 框架join方法用法实例分析
May 26 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
第十四节 命名空间 [14]
2006/10/09 PHP
PHP中使用unset销毁变量并内存释放问题
2012/07/05 PHP
避免Smarty与CSS语法冲突的方法
2015/03/02 PHP
PHP的文件操作与算法实现的面试题示例
2015/08/10 PHP
Laravel中如何增加自定义全局函数详解
2017/05/09 PHP
再谈Yii Framework框架中的事件event原理与应用
2020/04/07 PHP
风吟的小型JavaScirpt库 (FY.JS).
2010/03/09 Javascript
html超链接打开窗口大小的方法
2013/03/05 Javascript
js和jquery使按钮失效为不可用状态的方法
2014/01/26 Javascript
escape编码与unescape解码汉字出现乱码的解决方法
2014/07/02 Javascript
jQuery学习笔记之jQuery中的$
2015/01/19 Javascript
javascript操作表格排序实例分析
2015/05/06 Javascript
Bootstrap学习笔记之css组件(3)
2016/06/07 Javascript
微信小程序 网络API 上传、下载详解
2016/11/09 Javascript
基于JavaScript实现百度搜索框效果
2020/06/28 Javascript
React中使用collections时key的重要性详解
2017/08/07 Javascript
原生JS实现Ajax跨域请求flask响应内容
2017/10/24 Javascript
利用Angular2 + Ionic3开发IOS应用实例教程
2018/01/15 Javascript
Vue2.0实现组件之间数据交互和通信操作示例
2019/05/16 Javascript
jQuery实现颜色打字机的完整代码
2020/03/19 jQuery
使用Vant完成Dialog弹框案例
2020/11/11 Javascript
Python中处理时间的几种方法小结
2015/04/09 Python
理解Python中函数的参数
2015/04/27 Python
Python:Numpy 求平均向量的实例
2019/06/29 Python
python3 map函数和filter函数详解
2019/08/26 Python
python打印文件的前几行或最后几行教程
2020/02/13 Python
python字典的值可以修改吗
2020/06/29 Python
python使用建议与技巧分享(二)
2020/08/17 Python
python使用matplotlib的savefig保存时图片保存不完整的问题
2021/01/08 Python
财务信息服务专业自荐书范文
2014/02/08 职场文书
社团活动总结格式
2014/08/29 职场文书
JPA如何使用entityManager执行SQL并指定返回类型
2021/06/15 Java/Android
MySQL REVOKE实现删除用户权限
2021/06/18 MySQL
Windows Server 2012配置DNS服务器的方法
2022/04/29 Servers
Nginx HTTP跳转至HTTPS
2022/05/15 Servers