php function用法如何遞歸及return和echo區(qū)別
更新時間:2014年03月07日 16:28:22 作者:
這篇文章主要介紹了php function用法如何遞歸及return和echo區(qū)別,需要的朋友可以參考下
復制代碼 代碼如下:
<?php
//模擬sql數(shù)據(jù)
$array = array(0=>'apple',1=>'banana',2=>'cat',3=>'dog',4=>'egg','5'=>'father');
//function 用法1
//arr 是傳入的數(shù)據(jù) $con 是條件
function f_1($arr,$con){
//這里的 array 是這個函數(shù)內(nèi)私有的,不會和出面的array沖突
//所以,外地面的 array不里直接在內(nèi)面用,里面的array也不能直接外面用
//先實例一個array
$array = array();
//for foreach while 用法都類似,具體baidu
foreach ($arr as $key => $value) {
//如果循環(huán)出來的 value 等于 con 的話,就把他加入到數(shù)組
if ($value == $con) {
//數(shù)組和變量的區(qū)別在于加了個 []
$array[] = array($key => $value);
}
}
//循環(huán)得到結果后 返回數(shù)組。所以,這個函數(shù)就是一個數(shù)組
return $array;
//return 執(zhí)行后就終斷了,無論后面還有什么代碼 都不會被執(zhí)行
//return可以看做是一個函數(shù)結束的地方
}
//function 用法2
//$con 可以是數(shù)組
function f_2($arr,$con){
//先實例一個變量
$code = '<ul>';
foreach ($arr as $key => $value) {
//里面的for循環(huán) 是 循環(huán)出con內(nèi)容
foreach ($con as $value2) {
// .= 往后添加更多 連續(xù)定義變量
// 如果第一層數(shù)據(jù)循環(huán)出來的值,和第二層條件循環(huán)出現(xiàn)的值相同,添加到 變量里
//多個for循環(huán)來過濾數(shù)據(jù)也稱為 遞歸
if ($value == $value2) {
$code .= '<li>'.$value.'</li>';
}
}
}
$code .= '</ul>';
//循環(huán)得到結果后 返回變量。所以,這個函數(shù)就是一個字符串
return $code;
}
//function 用法3
//在函數(shù)里 echo 和 return 有什么區(qū)別 看執(zhí)行結果
function f_3($arr,$con){
//先實例一個變量
echo '<ul>';
foreach ($arr as $key => $value) {
//里面的for循環(huán) 是 循環(huán)出con內(nèi)容
foreach ($con as $value2) {
// .= 往后添加更多 連續(xù)定義變量
// 如果第一層數(shù)據(jù)循環(huán)出來的值,和第二層條件循環(huán)出現(xiàn)的值相同,添加到 變量里
//多個for循環(huán) 去過濾數(shù)據(jù)也稱為 遞歸
if ($value == $value2) {
echo '<li>'.$value.'</li>';
}
}
}
echo '</ul>';
}
?>
f_1 output start<br/>
<?php
//因為 f_1 是一個數(shù)組,我們可以打印出來
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 已經(jīng)在函數(shù)里面echo 了,所以在函數(shù)執(zhí)行時不用echo
$con = array('apple','father');
f_3($array,$con);
?>
<br/>f_2 output end
相關文章
Discuz! 5.0.0論壇程序中加入一段js代碼,讓會員點擊下載附件前自動彈出提示窗口
Discuz! 5.0.0論壇程序中加入一段js代碼,讓會員點擊下載附件前自動彈出提示窗口...2007-04-04同一空間綁定多個域名而實現(xiàn)訪問不同頁面的PHP代碼
同一空間綁定多個域名而實現(xiàn)訪問不同頁面的PHP代碼...2006-12-12PHP pthreads v3在centos7平臺下的安裝與配置操作方法
這篇文章主要介紹了PHP pthreads v3在centos7平臺下的安裝與配置操作方法,結合圖文與實例形式分析了PHP pthreads v3在centos7平臺下的安裝與配置操作具體步驟、相關命令與注意事項,需要的朋友可以參考下2020-02-02實現(xiàn) win2003 下 mysql 數(shù)據(jù)庫每天自動備份
這篇文章主要為大家介紹下,如果用批處理實現(xiàn)mysql的自動備份,需要的朋友可以參考下2006-12-12php中使用in_array() foreach array_search() 查找數(shù)組是否包含時的性能對比
這篇文章主要介紹了php中使用in_array() foreach array_search() 查找數(shù)組是否包含時的性能對比,需要的朋友可以參考下2015-04-04