今天我看到一些PHP我不明白,有人能解释一下吗?
function my_func($param='')
{
if (empty($param))
{
return false;
}
else
{
return true;
}
}
我不明白的是,$ param变量被分配了一个空字符串,但在函数内部不是空的?这只是一个默认值吗?
答案 0 :(得分:2)
my_func("string") //makes $param "string"
my_func() //picks default making $param ''
您可以拥有必需和可选的参数,例如
function my_func($param1, $param2='default')
您不能将可选参数置于必需的参数之后
function my_func($param1='', $param2) //gives errors.
答案 1 :(得分:1)
是的,您可以在PHP中为param分配默认值。您可以使用my_func(“None Empty String”)覆盖它,例如!
答案 2 :(得分:1)
你的假设是正确的;这允许开发人员为参数分配默认值。
如果调用代码未传递参数值,则该函数返回false。否则,$param
非空,函数返回true。
此代码的潜在缺陷是使用空值(0,null等)传递参数的情况。即使传递了参数,代码也会返回false
。
答案 3 :(得分:1)
是的,函数声明的括号内的变量是默认值,并且被使用,因此您可以像这样调用函数:
echo my_func();
根本不需要将变量实际传递给函数。