在定義函數時,函數名後面括号中的參數清單是使用者在調用函數時用來将資料傳遞到函數内部的接口,而函數的傳回值則将函數執行後的結果傳回給調用者。如果函數沒有傳回值,就隻能算一個執行過程。隻依靠函數做一些事情還不夠,有時更需要在腳本程式中使用函數執行後的結果。由于變量的作用域的差異,調用函數的腳本程式不能直接使用函數體裡面的資訊。前面講解了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 .= "
$str_table .= "
$table_name
";
for($i=0; $i
$color = $i%2 == 0?"#ffffff":"#dddddd";
$str_table .= "
";
for($j=0; $j
$str_table .= "
".($i*$cols+$j)."";
}
$str_table .= "
";
}
$str_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 語句隻能傳回一個操作數,即隻能傳回一個值,不能一次傳回多個值。如果要傳回多個值,就要在函數中定義一個數組,将傳回值存儲在數組中傳回。
【相關教程推薦】