前面给大家介绍了《__construct(),类的构造函数》《__destruct(),类的析构函数》,下面继续给大家介绍PHP中__call()方法。

__call(),在对象中调用一个不可访问方法时调用。

该方法有两个参数,第一个参数 $function_name 会自动接收不存在的方法名,第二个 $arguments 则以数组的方式接收不存在方法的多个参数。

1、 __call() 方法的格式:function __call(string $function_name, array $arguments)

{

// 方法体

}

2、 __call() 方法的作用:

为了避免当调用的方法不存在时产生错误,而意外的导致程序中止,可以使用 __call() 方法来避免。

该方法在调用的方法不存在时会自动调用,程序仍会继续执行下去。

请参考如下代码:<?php

class Person

{

function say()

{

echo "Hello, world!
";

}

/**

* 声明此方法用来处理调用对象中不存在的方法

*/

function __call($funName, $arguments)

{

echo "你所调用的函数:" . $funName . "(参数:" ; // 输出调用不存在的方法名

print_r($arguments); // 输出调用不存在的方法时的参数列表

echo ")不存在!
\n"; // 结束换行

}

}

$Person = new Person();

$Person->run("teacher"); // 调用对象中不存在的方法,则自动调用了对象中的__call()方法

$Person->eat("小明", "苹果");

$Person->say();

运行结果:你所调用的函数:run(参数:Array ( [0] => teacher ) )不存在!

你所调用的函数:eat(参数:Array ( [0] => 小明 [1] => 苹果 ) )不存在!

Hello, world!

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

php call()函数,PHP中__call()方法详解相关推荐

  1. python resample函数_Pandas中resample方法详解

    Pandas中的resample,重新采样,是对原样本重新处理的一个方法,是一个对常规时间序列数据重新采样和频率转换的便捷的方法. 方法的格式是: DataFrame.resample(rule, h ...

  2. java中flush函数作用_Java语言中flush()函数作用及使用方法详解

    最近在学习io流,发现每次都会出现flush()函数,查了一下其作用,起作用主要如下 //------–flush()的作用--------– 笼统且错误的回答: 缓冲区中的数据保存直到缓冲区满后才写 ...

  3. php中魔术方法详解

    〝 古人学问遗无力,少壮功夫老始成 〞php中魔术方法详解,在php中有一类方法,很奇怪常,那就是只要满足一定条件,就会自己执行,那就是php中的魔术方法,码字不易,出精品更难,没有特别幸运,那么请先 ...

  4. Pandas中resample方法详解

    Pandas中resample方法详解 Pandas中的resample,重新采样,是对原样本重新处理的一个方法,是一个对常规时间序列数据重新采样和频率转换的便捷的方法.重新取样时间序列数据. 方便的 ...

  5. numpy中reshape方法详解

    numpy中reshape方法详解_zhanggonglalala的博客-CSDN博客_reshape

  6. JavaScript中getBoundingClientRect()方法详解

    JavaScript中getBoundingClientRect()方法详解 getBoundingClientRect() 这个方法返回一个矩形对象,包含四个属性:left.top.right和bo ...

  7. Js中apply方法详解说明

    Js apply 方法 详解 我在一开始看到JavaScript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了, ...

  8. php fopen函数php,fopen函数介绍与使用方法详解

    在我们的PHP开发中会经常遇到fopen()和file_get_contents(),相信很多同学都发现这两个函数基本上都差不多,那么我们今天就来讲讲php fopen()和file_get_cont ...

  9. php中in array函数_in_array函数介绍与使用方法详解

    PHP的性能一直在提高.然而,若是用的不恰当,或是一个不留神,还是可能会踩到PHP内部实现方面的坑的.我在前几天的一个性能问题上就碰到了PHP的性能一直在提高.然而,若是用的不恰当,或是一个不留神,还 ...

最新文章

  1. tornado总结7-文件切片异步非阻塞下载
  2. 远程升级stm32程序_STM32IAP远程升级带C#上位机
  3. window下配置SSH连接GitHub、GitHub配置ssh key
  4. 大道五目Flash英文版(Renju Problems)程序分析之禁手判断
  5. 在vivo面试 java_面试代码题(vivo)数位之积
  6. 俄罗斯 IT 存储空间告急,未来 2 月或将耗尽?
  7. mmseg 同义词分析器 SolrSynonymParser
  8. RC952-FXE1-BL用户使用手册(存档)
  9. 带分销小程序商城源码,完整代码分享
  10. 华为网络安全工程师:HCNA-Security(H12-711)题型解析(第二部分)-马青-专题视频课程...
  11. 惠普服务器显示器接口类型,介绍:目前显示器主要接口
  12. 企业微信之网页授权登录
  13. 怎样找到win7系统默认的微信缓存文件夹路径
  14. coursera和udacity_三大 mooc 网站:coursera 与 udacity 和 edx 比较,哪个更适合中国人你有何经验分享...
  15. easyui实例案例介绍
  16. 关于浮动元素,你还在自己计算位置吗?来看看 Floating UI 吧
  17. UiBot 邮件群发
  18. 使用IDEA插件反编译jar包文件
  19. 手机动态:摩托罗拉edge s pro搭载骁龙870处理器
  20. 【Excel】如何冻结任意行列

热门文章

  1. 前端学习(3013):vue+element今日头条管理--手动触发验证
  2. [软技能] 你认为计算专业和非计算机专业的差别在哪?为什么?
  3. [css] 如何做图片预览,如何放大一个图片?
  4. [css] 怎么去掉点击a链接或者图片出现的边框?
  5. [css] 你知道CSS的标准发布流程吗?
  6. 工作213:不能改变父组件值
  7. 前端学习(2560):理解虚拟dom和key
  8. 前端学习(2388):封装请求模块
  9. “约见”面试官系列之常见面试题之第八十四篇之手写promise(建议收藏)
  10. 前端学习(2160):vuecli项目初始化过程