2011.08.06 Update: 感謝 jaceju 指正筆誤
自己定義
PHP Function 的時候,假設該函式有1個參數,您可以傳入該參數或者是不傳,但是函式裡面如何判斷是否有傳入該參數呢?先看看底下例子:
function test($arg_1 = NULL)
{
// 判斷 $arg_1 參數是否傳入
$arg_1 = $arg_1 || 'test';
echo $arg_1;
}
你會發現上面結果會是
1,而不是 test,大家會懷疑為什麼這樣寫不行呢,那是因為 || 是
boolean operators,他只會 return true 或是 false,而不是回傳 string,如果想這這樣寫,大概可以用 javascript 或 perl 語言來寫,javascript 可以參考之前的文章
[Javascript] 在函數裡設定參數預設值,然而 PHP 的正確寫法要用 ?: 來取代
function test($arg_1 = NULL)
{
// 判斷 $arg_1 參數是否傳入
$arg_1 = (isset($arg_1)) ? $arg_1 : 'test';
// 或者是
$arg_1 = $arg_1 ? $arg_1 : 'test';
echo $arg_1;
}
請參考
Logical Operators
Related