任何有效的 PHP 程式碼都有可能出現在函數內部,甚至包括其它函數和類別定義。
函數名稱和 PHP 中的其它標識符命名規則相同。有效的函數名稱以字母或底線打頭,後面跟著字母,數字或底線。
可以用正規表示式表示為:[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*。
php自訂函數接受參數的時候可以直接給賦預設值
function TestStr($str) { return $str."是一个字符串"; } echo TestStr("abcdef")."</br>";
上面這個自訂函數接受一個參數,如果我們呼叫的時候TestStr() ;不給參數會是什麼情況呢?
直接報錯:Warning: Missing argument 1 for TestStr()
所以開發的過程中為了避免上面的錯誤我們一般要在自定義函數的時候給參數賦預設值,如下
function TestStr2($str="kkkkk") { return $str."是一个字符串"; }
現在呼叫TestStr2() 不出錯,直接輸出kkkkk是一個字串,當然你傳出參數後會替換掉預設參數.
#第三種情況:
有2個以上參數的時候,如果不是全部給出預設值,一定要按照從右到左的參數依序給出預設值.如下就是錯誤的事例
function TestStr3($str ='mmmmm' ,$para) { return $str."和".$para."都是字符串"; }
上面並沒有遵循從右到做給出預設值,而是最左邊的給了一個預設值.
當我們呼叫函數的時候TestStr3("第一個參數" ); 我們期望的是第一個參數以預設值代替,第二個參數用傳入參數代替.但是不是這樣的,替換參數的順序是從左到右.所以第二個參數不但沒有傳入值,連預設值都沒有,所以直接報錯
正確的預設值應該是這樣的
function TestStr3($str,$para='mmmmm') { return $str."和".$para."都是字符串"; }
然後輸出:
第一個參數和mmmmm都是字串
以上是php自訂函數的參數預設值用法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!