php代碼執行個體說明函數的參數和傳回值

來源:互聯網
上載者:User
PHP 中函數的定義

* 通過在函數定義時的聲明,函數可以由任意數目的參數。

* 傳遞參數給函數的方式有兩種: 按值傳遞 和 按 引用傳遞。

<?php/** * PHP 中函數的定義 * 通過在函數定義時的聲明,函數可以由任意數目的參數。 * 傳遞參數給函數的方式有兩種:   按值傳遞 和 按 引用傳遞。 *///按值傳遞/** * @param integer $a    按值傳遞 * @param integer $b    按引用傳遞 * @param integer $c = 3 預設參數 */function A($a, & $b, $c = 3) {    echo $a."\n";    echo $b."\n";    $b <<= 1;    echo $c."\n";}$a = 1;$b = 1;a($a,$b);   //函數名不區分大小寫echo $b."\n";/* * 可變參數: * 一個函數可能需要一個可變數目的參數。 * 為了什麼這樣的具有可變參數的函數,需要完全省略參數區塊 * PHP中提供了3個函數用於減速在函數中所傳遞的參數: *    $array = func_get_args() //返回一個提供給函數的所有參數的數組 *    $count = func_num_args() //返回提供給函數的參數數目 *    $value = func_get_arg()  //返回一個來自參數的特定參數 */function countList() {    if (func_num_args() == 0 ) {        return false;    }else {        $count = 0;        for ($i = 0; $i < func_num_args(); $i++) {            $count +=func_get_arg($i);        }        return $count;    }}echo countList(1,5,9)."\n"; //輸出15/* * 遺漏參數 * 當調用函數時,可以傳遞任意個參數給函數。 * 當函數必要的參數滅有被傳遞是,此參數值為NULL,並且PHP會為每個一口的參數發出警告: */function takesTwo($a, $b) {    if (isset($a))  {        echo "a is set \n";    }    if (isset($b)) {       echo "b is set \n";    }}takesTwo(1,2);//takesTwo(1);    //會出現一個warning/* * 參數的類型提示 * 當定義一個函數時,你可以要求一個參數是一個特定的類(包括類的繼承或類的介面的執行個體), * 或是繼承自一個特定的介面執行個體,一個數組或一個回調。 * * 可以再函數參數列表的變數名添加 類名、array 或是callable來實現函數提示 */class Entertainment {}class Clown extends Entertainment {}class job{}function handleEntertainment (Entertainment $e, callable $callback = null) {    echo "Handling " . get_class($e). " fun\n";    if ($callback !== null) {        $callback();    }}$callback = function () {   echo "callback \n"; };handleEntertainment(new Clown,  $callback);//handleEntertainment(new job, $callback);  //執行階段錯誤/* * PHP函數可以使用return 關鍵字返回一個單值 * (如果想返回多個值可以返回一個數組) * 如果函數沒有通過return 傳回值,則傳回值預設為NULL * * 預設情況下,是從函數中複製出值。 * 要傳回值的引用,需要在聲明函數時在其前面 加 “&” 並把函數的傳回值返回給一個變數 */$names = array("LA","LB","LC","LD");function &findOne($n) {    global $names;    return $names[$n];}$person = &findOne(1);$person = "RB";echo $names[1]."\n";

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.