PHP函数如何只传指定的参数
本文介绍了PHP函数如何只传指定的参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
可以只传$a
和$c
吗
<?php
$a = new c;
class c
{
function __construct(){
$this->f(1,,1);//会报错
}
function f($a, $b = 'hello', $c)
{
if($a) echo $a;
if($b) echo $b;
if($c) echo $c;
}
}
?>
解决方案
再改不了f()
方法的情况下,可以加个方法来实现
<?php
class C
{
public function __construct()
{
$this->_f(1, 1);
}
public function f($a, $b = 'hello', $c)
{
if($a) echo $a;
if($b) echo $b;
if($c) echo $c;
}
public function _f()
{
$input = func_get_args();
$arguments = [];
$reflection = new ReflectionMethod($this, 'f');
foreach ($reflection->getParameters() as $parameter) {
$arguments[] = $parameter->isDefaultValueAvailable() ?
$parameter->getDefaultValue() :
array_shift($input);
}
return call_user_func_array([$this, 'f'], $arguments);
}
}
$c = new C();
_f()
方法接收到的参数,会依次传值给f()
方法中没有默认值的参数。
这篇关于PHP函数如何只传指定的参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文