php函數之預設參數函數

來源:互聯網
上載者:User
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實戰視頻教程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.