php函数中,多个参数的情况下怎么使其中一个参数为默认值而其他的使用指定值
发布网友
发布时间:2022-04-06 10:15
我来回答
共4个回答
热心网友
时间:2022-04-06 11:45
PHP不支持这种调用方式,你的需求是不能实现的。
如果你不能改动函数,那么你可以做一个封装。PHP的语法比较灵活,有几种替代方式你可以借鉴。这些例子都有广泛的应用。
示例一:如果参数值为null,则在函数里强制赋值为默认值
<?php
function foo2($a=1,$b=2,$c=3) {
if ($a === null) $a=1;
if ($b === null) $b=2;
if ($c === null) $c=3;
foo($a, $b, $c);
}
foo(1, null, 3);
示例二:使用数组参数
<?php
function foo3($array=array()) {
extract($array);
if (!isset($a)) $a=1;
if (!isset($b)) $b=2;
if (!isset($c)) $c=3;
foo($a, $b, $c);
}
foo(array('a'=>1, 'c'=>3));
python是支持你所说的那种调用方式的:
def foo(a=1, b=2, c=3):
pass
foo(a=1, c=3)
热心网友
时间:2022-04-06 13:03
跨过中间的默认参数?
地球上目前么有任何编程语言能支持这种奇怪的调用方式。
也许可以利用反射做到这一点?
我不确定。
热心网友
时间:2022-04-06 14:37
<?php
function foo()
{
$numargs = func_num_args();
echo "Number of arguments: $numargs<br />\n";
if ($numargs >= 2) {
echo "Second argument is: " . func_get_arg(1) . "<br />\n";
}
$arg_list = func_get_args();
for ($i = 0; $i < $numargs; $i++) {
echo "Argument $i is: " . $arg_list[$i] . "<br />\n";
}
}
foo(1, 2, 3);
?>
热心网友
时间:2022-04-06 16:29
不能做一个外套函数吗?
foo2($a=4,$c=5){
foo($a,2,$c);
}
foo2($a=4,$c=5)