gpt4 book ai didi

PHP默认函数参数值, 'pass default value'参数如何 'not last'?

转载 作者:IT王子 更新时间:2023-10-28 23:59:45 24 4
gpt4 key购买 nike

我们大多数人都知道以下语法:

function funcName($param='value'){
echo $param;
}
funcName();

Result: "value"

我们想知道如何为“not last”参数传递默认值?我知道这个术语已经过时了,但一个简单的例子是:

function funcName($param1='value1',$param2='value2'){
echo $param1."\n";
echo $param2."\n";
}

我们如何完成以下任务:

funcName(---default value of param1---,'non default');

结果:

value1
not default

希望这是有道理的,我们想基本上假设不是最后一个参数的默认值。

谢谢。

最佳答案

PHP 不支持您尝试执行的操作。这个问题的通常解决方案是传递一个参数数组:

function funcName($params = array())
{
$defaults = array( // the defaults will be overidden if set in $params
'value1' => '1',
'value2' => '2',
);

$params = array_merge($defaults, $params);

echo $params['value1'] . ', ' . $params['value2'];
}

示例用法:

funcName(array('value1' => 'one'));                    // outputs: one, 2
funcName(array('value2' => 'two')); // outputs: 1, two
funcName(array('value1' => '1st', 'value2' => '2nd')); // outputs: 1st, 2nd
funcName(); // outputs: 1, 2

使用这个,所有参数都是可选的。通过传递参数数组,数组中的任何内容都将覆盖默认值。这可以通过使用 array_merge() 来实现。它合并两个数组,用第二个数组中的任何重复元素覆盖第一个数组。

关于PHP默认函数参数值, 'pass default value'参数如何 'not last'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10597114/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com