我今天看到一些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