站长网 PHP教程 PHP中怎样用 __call方法实现重载?

PHP中怎样用 __call方法实现重载?

PHP实现重载功能的方法有很多,这篇文章给大家分享的是用 __call方法实现重载。小编觉得挺实用的,因此分享给大家做个参考,文中示例代码介绍的非常详细,感兴趣的朋友接下来一起跟随小编看看吧。 ?php /** * Created by PhpStorm. * User: funco * Date: 1

 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

本文来自网络,不代表站长网立场,转载请注明出处:https://www.tzzz.com.cn/html/jc/php/2021/1204/33560.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部