這篇文章主要介紹了php function用法如何遞迴及return和echo區別,需要的朋友可以參考下
代碼如下:
<?php //類比sql資料 $array = array(0=>'apple',1=>'banana',2=>'cat',3=>'dog',4=>'egg','5'=>'father'); //function 用法1 //arr 是傳入的資料 $con 是條件 function f_1($arr,$con){ //這裡的 array 是這個函數內私人的,不會和出面的array衝突 //所以,外地面的 array不裡直接在內面用,裡面的array也不能直接外面用 //先執行個體一個array $array = array(); //for foreach while 用法都類似,具體baidu foreach ($arr as $key => $value) { //如果迴圈出來的 value 等於 con 的話,就把他加入到數組 if ($value == $con) { //數組和變數的區別在於加了個 [] $array[] = array($key => $value); } } //迴圈得到結果後 返回數組。所以,這個函數就是一個數組 return $array; //return 執行後就終斷了,無論後面還有什麼代碼 都不會被執行 //return可以看做是一個函數結束的地方 } //function 用法2 //$con 可以是數組 function f_2($arr,$con){ //先執行個體一個變數 $code = '<ul>'; foreach ($arr as $key => $value) { //裡面的for迴圈 是 迴圈出con內容 foreach ($con as $value2) { // .= 往後添加更多 連續定義變數 // 如果第一層資料迴圈出來的值,和第二層條件迴圈出現的值相同,添加到 變數裡 //多個for迴圈來過濾資料也稱為 遞迴 if ($value == $value2) { $code .= '<li>'.$value.'</li>'; } } } $code .= '</ul>'; //迴圈得到結果後 返回變數。所以,這個函數就是一個字串 return $code; } //function 用法3 //在函數裡 echo 和 return 有什麼區別 看執行結果 function f_3($arr,$con){ //先執行個體一個變數 echo '<ul>'; foreach ($arr as $key => $value) { //裡面的for迴圈 是 迴圈出con內容 foreach ($con as $value2) { // .= 往後添加更多 連續定義變數 // 如果第一層資料迴圈出來的值,和第二層條件迴圈出現的值相同,添加到 變數裡 //多個for迴圈 去過濾資料也稱為 遞迴 if ($value == $value2) { echo '<li>'.$value.'</li>'; } } } echo '</ul>'; } ?> f_1 output start<br/> <?php //因為 f_1 是一個數組,我們可以列印出來 print_r(f_1($array,'banana')); ?> <br/>f_1 output end <hr/><br/> f_2 output start<br/> <?php //f_2 是變數 $con = array('apple','father'); echo f_2($array,$con); ?> <br/>f_2 output end <hr/><br/> f_2 output start<br/> <?php //f_3 已經在函數裡面echo 了,所以在函數執行時不用echo $con = array('apple','father'); f_3($array,$con); ?> <br/>f_2 output end