本文目录一览:
1、php中怎么使用call
2、如何在PHP中使用call
3、php中怎么用call
php中怎么使用call
PHP5 的对象新增了一个专用方法 __call()
,这个方法用来监视一个对象中的其它方法。如果你试着调用一个对象中不存在的方法,__call
方法将会被自动调用。
class foo {
function __call($name, $arguments) {
print("Did you call me? I'm $name!");
}
}
$x = new foo();
$x->doStuff();
$x->fancy_stuff();
这个特殊的方法可以被用来实现“过载(overloading)”的动作,这样你就可以检查你的参数并且通过调用一个私有的方法来传递参数。
class Magic {
function __call($name, $arguments) {
if ($name == 'foo') {
if (is_int($arguments[0]))
$this->foo_for_int($arguments[0]);
if (is_string($arguments[0]))
$this->foo_for_string($arguments[0]);
}
}
private function foo_for_int($x) {
print("oh an int!");
}
private function foo_for_string($x) {
print("oh a string!");
}
}
$x = new Magic();
$x->foo(3);
$x->foo("3");
如何在PHP中使用call
__call()
方法为了避免当调用的方法不存在时产生错误,可以使用 __call()
方法来避免。该方法在调用的方法不存在时会自动调用,程序仍会继续执行下去。
如果你说的 call
只是调用函数。那就只需要定义函数并直接调用即可。
php中怎么用call
__call
是一个魔术方法,当调用一个不可访问的对象方法(非静态方法),会自动执行该魔术方法。定义如下:
public function __call($name, $arr)
例如,在类外部调用类中一个不存在的方法,就会自动执行这个 __call
方法。其中 $name
代表的是你调用的方法名,$arr
代表的是你调用这个方法时传入的所有参数。
class a {
public function __call($name, $arr) {
echo $name;
var_dump($arr);
}
}
$a = new a();
$a->testa(1, 2, 3);
此时,$name
就是 testa
,$arr
就是 array(1, 2, 3)
组成的数组。
黑马程序员的 PHP 是国内最早开设的真正人工智能课程。课程全面系统,紧跟时代潮流。