__call()方法的用法

function __call(string $function_name, array $arguments)

{

// 方法体

}

程序中调用未定义的方法时,__call()方法会自动被调用。

示例如下:

class Person

{

function say()

{

echo "Hello, world!
";

}

function __call($funName, $arguments)

{

echo "The function you called:" . $funName . "(parameter:" ;  // 输出不存在的方法的名称

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

echo ")does not exist!!
\n";

}

}

$Person = new Person();

$Person->run("teacher"); // 如果对象内不存在的方法被调用,则 __call() 方法会被自动调用

$Person->eat("John", "apple");

$Person->say();

输出结果如下:

The function you called: run (parameter: Array([0] => teacher)) does not exist!

The function you called: eat (parameter: Array([0] => John[1] => apple)) does not exist!

Hello world!

php魔术方法call,PHP魔术方法__call()相关推荐

  1. php魔术方法例子,PHP魔术方法示例

    ① __get/__set:将对象的属性进行接管 当访问一个不存在的对象属性时: index.php define('BASEDIR',__DIR__); //定义根目录常量 include BASE ...

  2. php 魔术方法 sleep,PHP 魔术方法: __sleep __wakeup

    从php5以后的版本,类就可以使用魔术方法了.php规定以两个下划线(__)开头的方法都保留为魔术方法,所以建议大家函数名最好不用__开 头,除非是为了重载已有的魔术方法. 目前php已有的魔术方法有 ...

  3. php5的魔术方法,php5中魔术方法学习笔记

    1.__construct() 当实例化一个对象的时候,这个对象的这个方法首先被调用. PHP实例代码如下: classTest {function__construct() {echo"b ...

  4. invoke 魔术_PHP常用魔术方法(__invoke魔术方法)

    PHP5.3魔术方法 __invoke 这个魔幻方法被调用的时机是: 当一个对象当做函数调用的时候, 如果对象定义了__invoke魔幻方法则这个函数会被调用, class Callme { publ ...

  5. python color属性_Python中类的属性、方法及内置方法

    1.类的属性成员变量 对象的创建创建对象的过程称之为实例化,当一个对象被创建后,包含三个方面的特性对象聚丙属性和方法, 句柄用于区分不同的对象, 对象的属性和方法,与类中的成员变量和成员函数对应, o ...

  6. python中的魔法方法__new___Python魔法方法会调用new方法吗?

    Python中的sort()方法用于数组排序,本文以实例形式对此加以详细说明:一.基本形式列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不可修 ...

  7. 对称、群论与魔术(九)——魔术《五边形的奇迹》

    早点关注我,精彩不错过! 在前面的两篇文章中,我们隆重介绍了利用对称的合理操作,进而通信后构造巧合的预言效果的第一个经典作品<tic tac toe>,相关内容请戳: 对称.群论与魔术(八 ...

  8. 约瑟夫问题与魔术(九)——魔术《五重巧合之皇家同花顺》

    本文是<约瑟夫问题与魔术>系列作品的第九篇,之前的作品回顾请戳: 约瑟夫问题与魔术(八)--魔术<四重巧合之金刚> 约瑟夫问题与魔术(七)--魔术<The Austral ...

  9. 约瑟夫问题与魔术(十)——魔术《完全控制》

    转眼写到了<约瑟夫问题与魔术>系列的第十篇,也是本系列的收官之作了,前面文章回顾请戳: 约瑟夫问题与魔术(九)--魔术<五重巧合之皇家同花顺> 约瑟夫问题与魔术(八)--魔术& ...

最新文章

  1. 26 款阿里超神 Java 开源项目,看看你用过几个?
  2. Python7:from module import * 和 import module 的区别
  3. C++ 多线程教程及实现方法
  4. WIN8 打开图片内置管理员无法激活此应用
  5. linux下gcc编译使用opencv的源文件时报错的处理:undefined reference to symbol '_ZNSsD1Ev@@GLIBCXX_3.4'
  6. 学python用什么软件-初学 Python 需要安装哪些软件?
  7. 剖析Elasticsearch集群系列之二:分布式的三个C、translog和Lucene段
  8. linq to json
  9. springsecurity3的验证过程
  10. Unity 打包对接 XCode 记录
  11. 红外热成像技术的应用与发展
  12. 《S.忒修斯之船》读后感600字心得体会
  13. 微型计算机原理计算机钢琴,用汇编语言编写计算机钢琴程序.PDF
  14. 实战演练-java+微信小程序实现省市区三级联动
  15. 洛谷 Cantor 表
  16. VirtualBox管理工具Vboxmanage
  17. 三星emmc芯片手册_eMMC详细介绍
  18. iOS苹果相册“地点”相簿效果实现浅谈
  19. 低功耗产品ADC精确测量电池电压(电量)
  20. SQL Developer | MySQL

热门文章

  1. linux配置raid50怎么配置,如何在服务器主板上配置 Raid 10/50/60
  2. 用两个栈实现队列(Java实现)
  3. 笔记本安装ubantu系统
  4. hash哈希算法,MD5、SHA1、SHA512、SHA256
  5. springboot+mysql高校应届生就业管理系统-计算机毕业设计源码40613
  6. EditText 禁止输入表情包的正则表达式
  7. 你的新年期望是什么?
  8. 个人秋招面经——百度
  9. win ce车载系统_突破国际巨头垄断,森思泰克首次实现大批量77GHz车载毫米波雷达的国产化...
  10. 网站根目录下没有正确的DNT.config文件 (不同类型错误更新中)