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 php

相關文章
相關標籤/搜索