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中文网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值