PHP中如何通过__call方法实现函数重载示例?
- 内容介绍
- 文章标签
- 相关推荐
本文共计469个文字,预计阅读时间需要2分钟。
本例展示了如何使用PHP的`__call`方法实现方法的重载功能。以下是一个简单的示例:
phpclass MulStat{ // showClass 可以接收0个参数或1个参数 p /** * Created by PhpStorm. * User: funco * Date: 17-6-9 * Time: 下午1:39 */ public function __call($name, $arguments) { // 检查方法名称是否以 show 开头 if (strpos($name, 'show')===0) { // 处理参数 $params=[]; if (count($arguments) > 0) { $params[]=$arguments[0]; } // 输出结果 echo 调用方法: . $name . ( . implode(, , $params) . )\n; } else { // 如果不是重载方法,则抛出错误 throw new Exception(方法不存在: . $name); } }}
// 测试$mulStat=new MulStat();$mulStat->showClass(); // 输出: 调用方法: showClass()$mulStat->showClass(1); // 输出: 调用方法: showClass(1)
本文实例讲述了php 使用 __call实现重载功能。
本文共计469个文字,预计阅读时间需要2分钟。
本例展示了如何使用PHP的`__call`方法实现方法的重载功能。以下是一个简单的示例:
phpclass MulStat{ // showClass 可以接收0个参数或1个参数 p /** * Created by PhpStorm. * User: funco * Date: 17-6-9 * Time: 下午1:39 */ public function __call($name, $arguments) { // 检查方法名称是否以 show 开头 if (strpos($name, 'show')===0) { // 处理参数 $params=[]; if (count($arguments) > 0) { $params[]=$arguments[0]; } // 输出结果 echo 调用方法: . $name . ( . implode(, , $params) . )\n; } else { // 如果不是重载方法,则抛出错误 throw new Exception(方法不存在: . $name); } }}
// 测试$mulStat=new MulStat();$mulStat->showClass(); // 输出: 调用方法: showClass()$mulStat->showClass(1); // 输出: 调用方法: showClass(1)
本文实例讲述了php 使用 __call实现重载功能。

