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() 在呼叫時,前兩個參數時必須傳值的參數,如果不傳之則會出現錯誤;而最後一個參數是可選的參數,如果不傳值則使用預設的值。
【相關教學推薦】
3. php實戰影片教學
#以上是php函數之預設參數函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!