使用__call()
将参数传递给需要多个但不作为数组的方法
在PHP中,__call()
是一个魔术方法,它允许在对象中调用不存在的方法时自动触发。通过使用__call()
,我们可以将参数传递给需要多个参数但不作为数组的方法。
__call()
方法的定义如下:
public mixed __call ( string $name , array $arguments )
参数说明:
$name
:要调用的方法名。$arguments
:传递给方法的参数数组。使用__call()
的示例:
class MyClass {
public function __call($name, $arguments) {
// 在这里处理方法调用
}
}
$obj = new MyClass();
$obj->myMethod('arg1', 'arg2', 'arg3');
在上面的示例中,myMethod()
方法并未在MyClass
类中定义。当我们尝试调用myMethod()
时,__call()
方法会被触发。我们可以在__call()
方法中处理方法调用,并访问传递给方法的参数。
例如,我们可以将参数传递给myMethod()
,并在__call()
方法中将它们打印出来:
class MyClass {
public function __call($name, $arguments) {
echo "Method name: " . $name . "\n";
echo "Arguments:\n";
foreach ($arguments as $arg) {
echo $arg . "\n";
}
}
}
$obj = new MyClass();
$obj->myMethod('arg1', 'arg2', 'arg3');
输出结果:
Method name: myMethod
Arguments:
arg1
arg2
arg3
通过使用__call()
,我们可以将参数传递给需要多个参数但不作为数组的方法,并在方法中处理这些参数。
领取专属 10元无门槛券
手把手带您无忧上云