php預設參數函數介紹
在PHP中,支援函數的預設調用,即為參數指定一個預設值。上一節介紹了php函數之引用參數函數,在調用函數時如果沒有指定參數的值,在函數中會使用參數的預設值。預設值必須是常量的運算式,不能是變數、類成員或者函數調用。PHP還允許使用數組和特殊類型 NULL 作為預設參數。
php預設參數的函數格式說明如下:
mixed funName(string name[, string value [, int expire]]) //參數列表中出現使用 [ ] 描述參數
在定義函數時聲明了參數,而在調用函數時沒有指定參數或是少指定了參數,就會出現缺少參數的警告。
下面通過一個執行個體來對預設參數進行說明:
<?php //自訂一個函數person,用於列印一個人的屬性 function person($name="張三", $age=20, $sex="男"){ echo "姓名:{$name}, 年齡:{$age}, 性別:{$sex} <br>"; } person(); //全部使用預設參數 person("李四"); //第一個預設參數被覆蓋,後面兩個參數為預設 person("李四",22); //前兩個預設參數被覆蓋,後面一個參數為預設 person("李四",22,"女"); //三個預設參數都被覆蓋?>
該程式執行後輸出結果如下:
姓名:張三, 年齡:20, 性別:男
姓名:李四, 年齡:20, 性別:男
姓名:李四, 年齡:22, 性別:男
姓名:李四, 年齡:22, 性別:女
在上面的執行個體中聲明了一個名為 person() 並帶有三個參數的函數,其中的三個參數都被預設附上了初始值,即預設參數。在調用該函數時,如果少傳或者不傳參數,參數將使用預設的值。如果使用者在調用函數時傳值,則使用傳入的值。
當調用函數傳遞參數時,實參和形參是按照順序對應傳遞資料的,如果實參數少於形參,則右邊的形參不會被傳值。當使用預設參數時,任何 預設參數必須放在任何非預設參數的右側,否則,可能函數將不會按照預期的情況進行工作。
例如,下面的函式宣告就是函數預設參數不正確的用法。後面兩個參數沒有被傳值,也沒有預設值,在調用時出現警告。
下面通過一個例子來說明:
<?php //自訂一個函數person,用於列印一個人的屬性 function person($name="張三", $age, $sex){ echo "姓名:{$name}, 年齡:{$age}, 性別:{$sex} <br>"; } person("李四"); //第一個預設參數被覆蓋,後面兩個參數沒有傳值,會出現兩條警告資訊?>
說明:只需要將函數頭部的參數列表中,預設參數列在所有沒有預設值的參數的後面,該程式就可以正確的執行。在上面的代碼中,函數 person() 在調用時,前兩個參數時必須傳值的參數,如果不傳之則會出現錯誤;而最後一個參數是可選的參數,如果不傳值則使用預設的值。
【相關教程推薦】
1. 《php.cn獨孤九賤(4)-php視頻教程》
2. php編程從入門到精通全套視頻教程
3. php實戰視頻教程