PHP小丑 发表于 2021-11-8 11:36:22

php 使用 __call实现重载功能示例

这篇文章主要介绍了php 使用 __call实现重载功能,结合实例形式分析了PHP使用__call实现重载的相关操作技巧,需要的朋友可以参考下
本文实例讲述了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);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程序设计有所帮助。
原文链接:https://blog.csdn.net/ztblog/article/details/80170792

http://www.zzvips.com/article/192534.html
页: [1]
查看完整版本: php 使用 __call实现重载功能示例