php自訂函式宣告,調用,參數和傳回值基礎教程

來源:互聯網
上載者:User
像數學中的函數一樣, y=f(x)是函數基本的表達形式, x可看做是參數, y可看做是傳回值,即函數定義就是一個被命名的、獨立的程式碼片段,它執行特定的任務,並可能給調用它的程式返回一個值。

自訂函數

函數的聲明

在編寫程式的過程中,我們會經常碰到某些功能模組在PHP中沒有提供系統函數,這樣就需要我們自己定義函數,即自訂函數,自訂函數的規則如下:

  • 每個函數的第一行都是函數頭,由聲明函數的關鍵字function、函數名和參數列表三部分組成。

  • 每個自訂函數都必須使用function關鍵字聲明。

  • 函數名可以代表整個函數,可以將函數命名為任何名稱,只要遵循變數名的命名規則即可。但函數名稱必須唯一,且不能與系統函數重名。

  • 聲明函數時函數名後面的花括弧也是必須有的,在花括弧中表明了一組可以接受的參數列表,參數就是聲明的變數,然後在調用函數時傳遞給它值。參數列表可以沒有,也可以有—個或多個參數,多個參數使用逗號分隔。

  • 函數體位於函數頭後面,用花括弧括起來。函數被調用後,執行到retun語句或最外面的花括弧後結束,返回到調用的程式。

  • 使用關鍵字return可以從函數中返回一個值,然後返回到調用程式處繼續執行。

Demo

<?php     /* 將使用雙層for迴圈輸出表格的代碼聲明為函數,函數名為table */    function table() {                                      echo "<table align='center' border='1' width='600'>";                   for($out=0; $out < 10; $out++ ) {                   $bgcolor = $out%2 == 0 ? "red" : "blue";//各行換背景色                        echo "<tr bgcolor=".$bgcolor.">";             for($in=0; $in <10; $in++) {                    echo "<td>".($out*10+$in)."</td>";                }            echo "</tr>";            }        echo "</table>";    } ?>

函數的調用

不管是自訂的函數還是系統函數,如果函數不被調用,就不會執行。函數被調用後開始執行函數體中的代碼,執行完畢返回到調用的位置繼續向下執行。調用規則如下:

  • 通過函數名稱去調用函數。

  • 如果函數有參數列表,還可以通過函數名後面的圓括弧傳入對應的值給參數,在函數體中使用參數來改變函數內部代碼的執行行為。

  • 如果函數有傳回值,當函數執行完畢時就會將return後面的值返回到調用函數的位置處。

Demo

<?php     /* 將使用雙層for迴圈輸出表格的代碼聲明為函數,函數名為table */    function table() {                                      echo "<table align='center' border='1' width='600'>";                   for($out=0; $out < 10; $out++ ) {                   $bgcolor = $out%2 == 0 ? "red" : "blue";//各行換背景色                        echo "<tr bgcolor=".$bgcolor.">";             for($in=0; $in <10; $in++) {                    echo "<td>".($out*10+$in)."</td>";                }            echo "</tr>";            }        echo "</table>";    } ?>  <?php table();?>

函數的參數

參數列表是由零個、一個或多個參數組成的。每個參數是一個運算式,用逗號分隔。對於有參函數,在PHP指令碼程式中和被調用函數之間有資料傳遞關係。定義函數時函數名後面括弧內的運算式稱為形式參數(簡稱“形參”),被調用函數名後面括弧中的運算式稱為實際參數(簡稱“實參”),實參和形參需要接順序對應傳遞資料。如果函數沒有參數列表,函數執行的任務就是固定的,使用者在調用函數時不能改變函數內部的一些執行行為。

Demo

<?php     /**自訂函數table()時,聲明三個參數,參數之間使用逗號分隔            @param  string  $tableName  需要一個字串類型的表名            @param  int     $rows       需要一個整型數值設定表格的行數            @param  int     $cols       需要另一個整型值設定表格的列數    */    function table( $tableName, $rows, $cols ) {                            echo "<table align='center' border='1' width='600'>";               echo "<caption><h1> $tableName </h1></caption>";                        for($out=0; $out < $rows; $out++ ) {    //使用第二個參數$rows指定表行數            $bgcolor = $out%2 == 0 ? "red" : "blue";                        echo "<tr bgcolor=".$bgcolor.">";             for($in=0; $in < $cols; $in++) {    //使用第三個參數$cols指定表列數                echo "<td>".($out*$cols+$in)."</td>";                }            echo "</tr>";            }        echo "</table>";    } ?>  <?php table("表格",10,10);?>

函數的傳回值

函數的傳回值是函數執行的結果,調用函數的指令碼程式不能直接使用函數體裡面的資訊,但可以通過關鍵字return向調用者傳遞資料。return語句注意點如下:

  • return語句可以向函數調用者返回函數體中任意執行結果值。

  • 在函數體中如果執行了return語句,它後面的語句就不會被執行。

Demo

<?php     /**        自訂函數table()時,聲明三個參數,參數之間使用逗號分隔            @param  string  $tableName  需要一個字串類型的表名            @param  int     $rows       需要一個整型數值設定表格的行數            @param  int     $cols       需要另一個整型值設定表格的列數    */    function table( $tableName, $rows, $cols ) {        $returnStr="這是返回的字串";        echo "<table align='center' border='1' width='600'>";               echo "<caption><h1> $tableName </h1></caption>";                        for($out=0; $out < $rows; $out++ ) {    //使用第二個參數$rows指定表行數            $bgcolor = $out%2 == 0 ? "red" : "blue";                        echo "<tr bgcolor=".$bgcolor.">";             for($in=0; $in < $cols; $in++) {    //使用第三個參數$cols指定表列數                echo "<td>".($out*$cols+$in)."</td>";                }            echo "</tr>";            }        echo "</table>";        return $returnStr;    } ?>  <?php echo table("表格",10,10);?>

聯繫我們

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