php call()函数,PHP中__call()方法详解
前面给大家介绍了《__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()方法详解相关推荐
- python resample函数_Pandas中resample方法详解
Pandas中的resample,重新采样,是对原样本重新处理的一个方法,是一个对常规时间序列数据重新采样和频率转换的便捷的方法. 方法的格式是: DataFrame.resample(rule, h ...
- java中flush函数作用_Java语言中flush()函数作用及使用方法详解
最近在学习io流,发现每次都会出现flush()函数,查了一下其作用,起作用主要如下 //------–flush()的作用--------– 笼统且错误的回答: 缓冲区中的数据保存直到缓冲区满后才写 ...
- php中魔术方法详解
〝 古人学问遗无力,少壮功夫老始成 〞php中魔术方法详解,在php中有一类方法,很奇怪常,那就是只要满足一定条件,就会自己执行,那就是php中的魔术方法,码字不易,出精品更难,没有特别幸运,那么请先 ...
- Pandas中resample方法详解
Pandas中resample方法详解 Pandas中的resample,重新采样,是对原样本重新处理的一个方法,是一个对常规时间序列数据重新采样和频率转换的便捷的方法.重新取样时间序列数据. 方便的 ...
- numpy中reshape方法详解
numpy中reshape方法详解_zhanggonglalala的博客-CSDN博客_reshape
- JavaScript中getBoundingClientRect()方法详解
JavaScript中getBoundingClientRect()方法详解 getBoundingClientRect() 这个方法返回一个矩形对象,包含四个属性:left.top.right和bo ...
- Js中apply方法详解说明
Js apply 方法 详解 我在一开始看到JavaScript的函数apply和call时,非常的模糊,看也看不懂,最近在网上看到一些文章对apply方法和call的一些示例,总算是看的有点眉目了, ...
- php fopen函数php,fopen函数介绍与使用方法详解
在我们的PHP开发中会经常遇到fopen()和file_get_contents(),相信很多同学都发现这两个函数基本上都差不多,那么我们今天就来讲讲php fopen()和file_get_cont ...
- php中in array函数_in_array函数介绍与使用方法详解
PHP的性能一直在提高.然而,若是用的不恰当,或是一个不留神,还是可能会踩到PHP内部实现方面的坑的.我在前几天的一个性能问题上就碰到了PHP的性能一直在提高.然而,若是用的不恰当,或是一个不留神,还 ...
最新文章
- tornado总结7-文件切片异步非阻塞下载
- 远程升级stm32程序_STM32IAP远程升级带C#上位机
- window下配置SSH连接GitHub、GitHub配置ssh key
- 大道五目Flash英文版(Renju Problems)程序分析之禁手判断
- 在vivo面试 java_面试代码题(vivo)数位之积
- 俄罗斯 IT 存储空间告急,未来 2 月或将耗尽?
- mmseg 同义词分析器 SolrSynonymParser
- RC952-FXE1-BL用户使用手册(存档)
- 带分销小程序商城源码,完整代码分享
- 华为网络安全工程师:HCNA-Security(H12-711)题型解析(第二部分)-马青-专题视频课程...
- 惠普服务器显示器接口类型,介绍:目前显示器主要接口
- 企业微信之网页授权登录
- 怎样找到win7系统默认的微信缓存文件夹路径
- coursera和udacity_三大 mooc 网站:coursera 与 udacity 和 edx 比较,哪个更适合中国人你有何经验分享...
- easyui实例案例介绍
- 关于浮动元素,你还在自己计算位置吗?来看看 Floating UI 吧
- UiBot 邮件群发
- 使用IDEA插件反编译jar包文件
- 手机动态:摩托罗拉edge s pro搭载骁龙870处理器
- 【Excel】如何冻结任意行列
热门文章
- 前端学习(3013):vue+element今日头条管理--手动触发验证
- [软技能] 你认为计算专业和非计算机专业的差别在哪?为什么?
- [css] 如何做图片预览,如何放大一个图片?
- [css] 怎么去掉点击a链接或者图片出现的边框?
- [css] 你知道CSS的标准发布流程吗?
- 工作213:不能改变父组件值
- 前端学习(2560):理解虚拟dom和key
- 前端学习(2388):封装请求模块
- “约见”面试官系列之常见面试题之第八十四篇之手写promise(建议收藏)
- 前端学习(2160):vuecli项目初始化过程