php默認參數函數介紹
在PHP中,支持函數的默認方式調用,即為參數指定一個默認值。上一節介紹了php函數之引用參數函數,在調用函數時如果沒有指定參數的值,在函數中會使用參數的默認值。默認值必須是常量的表達式,不能是變量、類成員或者函數調用。PHP還允許使用數組和特殊類型 NULL 作為默認參數。
php默認參數的函數格式說明如下:
1
|
mixed funName(string name[, string value [, int expire]])
//參數列表中出現使用 [ ] 描述參數
|
在定義函數時聲明了參數,而在調用函數時沒有指定參數或是少指定了參數,就會出現缺少參數的警告。
下面通過一個實例來對默認參數進行說明:
1
2
3
4
5
6
7
8
9
10
|
<?php
//自定義一個函數person,用於打印一個人的屬性
function
person(
$name
=
"張三"
,
$age
=20,
$sex
=
"男"
){
echo
"姓名:{$name}, 年齡:{$age}, 性別:{$sex} <br>"
;
}
person();
//全部使用默認參數
person(
"李四"
);
//第一個默認參數被覆蓋,后面兩個參數為默認
person(
"李四"
,22);
//前兩個默認參數被覆蓋,后面一個參數為默認
person(
"李四"
,22,
"女"
);
//三個默認參數都被覆蓋
?>
|
該程序執行后輸出結果如下:
姓名:張三, 年齡:20, 性別:男
姓名:李四, 年齡:20, 性別:男
姓名:李四, 年齡:22, 性別:男
姓名:李四, 年齡:22, 性別:女
在上面的實例中聲明了一個名為 person() 並帶有三個參數的函數,其中的三個參數都被默認附上了初始值,即默認參數。在調用該函數時,如果少傳或者不傳參數,參數將使用默認的值。如果用戶在調用函數時傳值,則使用傳入的值。
當調用函數傳遞參數時,實參和形參是按照順序對應傳遞數據的,如果實參數少於形參,則右邊的形參不會被傳值。當使用默認參數時,任何 默認參數必須放在任何非默認參數的右側,否則,可能函數將不會按照預期的情況進行工作。
例如,下面的函數聲明就是函數默認參數不正確的用法。后面兩個參數沒有被傳值,也沒有默認值,在調用時出現警告。
下面通過一個例子來說明:
1
2
3
4
5
6
7
|
<?php
//自定義一個函數person,用於打印一個人的屬性
function
person(
$name
=
"張三"
,
$age
,
$sex
){
echo
"姓名:{$name}, 年齡:{$age}, 性別:{$sex} <br>"
;
}
person(
"李四"
);
//第一個默認參數被覆蓋,后面兩個參數沒有傳值,會出現兩條警告信息
?>
|
說明:只需要將函數頭部的參數列表中,默認參數列在所有沒有默認值的參數的后面,該程序就可以正確的執行。在上面的代碼中,函數 person() 在調用時,前兩個參數時必須傳值的參數,如果不傳之則會出現錯誤;而最后一個參數是可選的參數,如果不傳值則使用默認的值。