我有一个php函数,
func($c) {
global $a,$b;
//Do something
}
我这样称呼,
$c = "Test";
func($c);
但是在某些情况下我需要传递一个额外的参数$ b,它不应该被全局变量值覆盖,所以我尝试了这个,
func($c,$b = $b,$a = $a) {
//Do something
}
但是在PHP中,设置变量是不允许的。所以请在这里帮助我...
答案 0 :(得分:3)
所以你想使用全局变量作为函数参数的默认值吗?
您可以使用以下代码,假设null
永远不会作为有效参数传递。
function func($c, $b = null, $a = null) {
if($b === null) $b = $GLOBALS['b'];
if($a === null) $a = $GLOBALS['b'];
}
答案 1 :(得分:2)
<?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);
?>
答案 2 :(得分:0)
愿这对你有帮助。
<?php
function doWork($options)
{
extract(
merge_array(
array(
'option_1' => default_value,
'option_2' => default_value,
'option_3' => default_value,
'option_x' => default_value
),
$options
)
);
echo $option_1; // Or do what ever you like with option_1
}
$opts = array(
'option_1' => custom_value,
'option_3' => another_custom_value
);