在定義函數時,函數名稱後面括號中的參數列表是使用者在呼叫函數時用來將資料傳遞到函數內部的接口,而函數的傳回值則將函數執行後的結果傳回給呼叫者。如果函數沒有回傳值,就只能算一個執行過程。只依靠函數做一些事情還不夠,有時更需要在腳本程式中使用函數執行後的結果。由於變數的作用域的差異,呼叫函數的腳本程式不能直接使用函數體裡面的資訊。前面講解了php自訂函數的參數在函數間傳遞的三種方式,這裡我們主要講解php自訂函數的回傳值。通常,函數將傳回值傳遞給呼叫者的方式是使用關鍵字 return 或 return()函數。
return 的作用是將函數的值傳回給函數的呼叫者,即將程式控制權傳回呼叫者的作用域。如果在全域作用域內使用 return 關鍵字,那麼就會終止腳本的執行。 return 語句在函數體中使用時,有兩個作用:
#1. return 語句可以向函數呼叫者傳回函數體中任意決定的值。
2. 將程式控制權傳回呼叫者的作用域,即退出函數。在函數體中如果執行了 return 語句,它後面的語句就不會被執行。
使用 table()函數,把該函數單純的輸出表格的功能修改成建立表格的功能。 table()函數只要被調用,就必須輸出用透過傳遞參數指定表名、行數和列數的表格。如果將函數體中所有輸出內容都放到一個字串裡,並使用 return 語句 傳回這個存有表格資料的字串。使用者不僅可以將取得字串直接輸出顯示表格,還可以將取得道德表格儲存到資料庫或檔案中,或有其他的字串處理方式。
其程式碼如下所示:
<?php function table($table_name, $rows, $cols){ $str_table = ""; $str_table .= "<table align='center' border='1' width='600'>"; $str_table .= "<caption><h2>$table_name</h2></caption>"; for($i=0; $i<$rows; $i++){ $color = $i%2 == 0?"#ffffff":"#dddddd"; $str_table .= "<tr bgcolor='.$color.'>"; for($j=0; $j<$cols; $j++){ $str_table .= "<td>".($i*$cols+$j)."</td>"; } $str_table .= "</tr>"; } $str_table .= "</table>"; return $str_table; } $str = table("3行4列的表格",3,4); echo table("4行5列的表格",4,5); echo $str; ?>
以上會輸出如下的圖:
說明:上面的實例中將table()函數中所有輸出的內容都累積到了一個字串$str_table 中,並在函數的最後使用return 語句將$str_table 傳回。這樣,在呼叫函數 table() 時,不僅將一些資料以參輸的形式傳到了函數的內部,還執行了函數,並且在呼叫函數處還可以使用return 語句傳回的值,而且這個從函數傳回的值可以再腳本中像使用其他值一樣使用。例如,將其賦給一個變數、直接輸出或是參與運算等。
注意:return 語句只能傳回一個運算元,也就是只能傳回一個值,不能一次傳回多個值。如果要傳回多個值,就要在函數中定義一個數組,將返回值儲存在數組中返回。
【相關教學推薦】
3. php實戰影片教學
#以上是php自訂函數的傳回值詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!