假设这是我提到的代码的一个例子。
<?php
function my_function($argument_1, $argument_2){
echo $argument_1.' '.$argument_2;
}
my_function('This is argument_1');
?>
问题是,如果我在上面的代码中只用一个参数提供它,my_function
是否仍然存在?
P.S。我已经在我的localhost(XAMPP)上尝试了它并且它正常运行时出现未定义的变量错误(仍然打印出$argument_1
)但是我想知道这是一般情况还是因为我的本地主机上的php配置
先谢谢
答案 0 :(得分:3)
如果在定义中定义了第二个参数的默认值,则只能使用一个参数调用它,例如:
function my_function($argument_1, $argument_2=''){
echo $argument_1.' '.$argument_2;
}
my_function('This is argument_1');
然后,如果没有提供第二个参数,它将把空字符串作为第二个参数,并且不会抛出任何警告。
否则你应该看到:
警告:缺少my_function()
的参数2
和
注意:未定义的变量:argument_2
,你的第二个参数仍将作为空字符串。
另一方面,您可以使用比其定义更多的参数调用函数,并通过func_get_args()
函数检索它们,例如:
function my_function(){
echo implode(' ', func_get_args());
}
my_function('This is argument_1', 'This is argument_2');
输出:
This is argument_1 This is argument_2
答案 1 :(得分:0)
检查您的函数调用。
call_user_func_array("my_function", array("one", "two"));
call_user_func_array("my_function", array("one"));
call_user_func_array("my_function");