我今天看到一些PHP我不明白,有谁能解释给我看?
function my_func($param='')
{
if (empty($param))
{
return false;
}
else
{
return true;
}
}
我不明白的是$ param变量被分配一个空字符串,但不知是在函数内部不是空的吗?这只是一个默认值?
我今天看到一些PHP我不明白,有谁能解释给我看?
function my_func($param='')
{
if (empty($param))
{
return false;
}
else
{
return true;
}
}
我不明白的是$ param变量被分配一个空字符串,但不知是在函数内部不是空的吗?这只是一个默认值?
my_func("string") //makes $param "string"
my_func() //picks default making $param ''
您可以有必需和可选PARAMS像
function my_func($param1, $param2='default')
你不能把可选PARAMS所需的PARAMS
function my_func($param1='', $param2) //gives errors.
是的,您可以在PHP中为param分配默认值。例如,您可以使用my_func(“无空字符串”)覆盖它!
你的假设是正确的;这允许开发人员为参数分配默认值。
如果调用代码未传递参数值,则该函数返回false。否则,$param
非空,并且该函数返回true。
这段代码有一个潜在的缺陷,就是一个参数被一个空值(0,null等)传递的情况。即使参数已通过,代码将返回false
。
是,函数声明的括号里面的变量是一个默认值,并因此可以使用这样调用该函数:
echo my_func();
,而不需要一个变量在实际传递给函数所有。
PHP函数文档背后:默认参数值(HTTP:/ /us2.php.net/manual/en/functions.arguments.php#functions.arguments.default) – Wiseguy 2012-03-06 14:26:46
[PHP function with unlimited number of parameters]的可能重复(http://stackoverflow.com/questions/1577383/p hp-function-with-unlimited-number-of-parameters) – 2012-03-06 14:30:34
@Shiplu我不同意。这个问题有点不同,它没有引用默认参数值。 – Wiseguy 2012-03-06 14:34:30