php函數之默認參數函數


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() 在調用時,前兩個參數時必須傳值的參數,如果不傳之則會出現錯誤;而最后一個參數是可選的參數,如果不傳值則使用默認的值。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM