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 是這個(gè)函數(shù)內(nèi)私有的,不會(huì)和出面的array沖突
//所以,外地面的 array不里直接在內(nèi)面用,里面的array也不能直接外面用
//先實(shí)例一個(gè)array
$array = array();
//for foreach while 用法都類似,具體baidu
foreach ($arr as $key => $value) {
//如果循環(huán)出來的 value 等于 con 的話,就把他加入到數(shù)組
if ($value == $con) {
//數(shù)組和變量的區(qū)別在于加了個(gè) []
$array[] = array($key => $value);
}
}
//循環(huán)得到結(jié)果后 返回?cái)?shù)組。所以,這個(gè)函數(shù)就是一個(gè)數(shù)組
return $array;
//return 執(zhí)行后就終斷了,無論后面還有什么代碼 都不會(huì)被執(zhí)行
//return可以看做是一個(gè)函數(shù)結(jié)束的地方
}
//function 用法2
//$con 可以是數(shù)組
function f_2($arr,$con){
//先實(shí)例一個(gè)變量
$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)的值相同,添加到 變量里
//多個(gè)for循環(huán)來過濾數(shù)據(jù)也稱為 遞歸
if ($value == $value2) {
$code .= '<li>'.$value.'</li>';
}
}
}
$code .= '</ul>';
//循環(huán)得到結(jié)果后 返回變量。所以,這個(gè)函數(shù)就是一個(gè)字符串
return $code;
}
//function 用法3
//在函數(shù)里 echo 和 return 有什么區(qū)別 看執(zhí)行結(jié)果
function f_3($arr,$con){
//先實(shí)例一個(gè)變量
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)的值相同,添加到 變量里
//多個(gè)for循環(huán) 去過濾數(shù)據(jù)也稱為 遞歸
if ($value == $value2) {
echo '<li>'.$value.'</li>';
}
}
}
echo '</ul>';
}
?>
f_1 output start<br/>
<?php
//因?yàn)?f_1 是一個(gè)數(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í)行時(shí)不用echo
$con = array('apple','father');
f_3($array,$con);
?>
<br/>f_2 output end
- php rmdir使用遞歸函數(shù)刪除非空目錄實(shí)例詳解
- php遞歸函數(shù)三種實(shí)現(xiàn)方法及如何實(shí)現(xiàn)數(shù)字累加
- php使用遞歸函數(shù)實(shí)現(xiàn)數(shù)字累加的方法
- php實(shí)現(xiàn)用于刪除整個(gè)目錄的遞歸函數(shù)
- php遞歸使用示例(php遞歸函數(shù))
- php遞歸函數(shù)中使用return的注意事項(xiàng)
- 淺析PHP遞歸函數(shù)返回值使用方法
- php實(shí)現(xiàn)遞歸的三種基本方式
- PHP基于簡(jiǎn)單遞歸函數(shù)求一個(gè)數(shù)階乘的方法示例
相關(guān)文章
Discuz! 5.0.0論壇程序中加入一段js代碼,讓會(huì)員點(diǎn)擊下載附件前自動(dòng)彈出提示窗口
Discuz! 5.0.0論壇程序中加入一段js代碼,讓會(huì)員點(diǎn)擊下載附件前自動(dòng)彈出提示窗口...2007-04-04同一空間綁定多個(gè)域名而實(shí)現(xiàn)訪問不同頁面的PHP代碼
同一空間綁定多個(gè)域名而實(shí)現(xiàn)訪問不同頁面的PHP代碼...2006-12-12PHP實(shí)現(xiàn)的簡(jiǎn)單路由和類自動(dòng)加載功能
這篇文章主要介紹了PHP實(shí)現(xiàn)的簡(jiǎn)單路由和類自動(dòng)加載功能,結(jié)合實(shí)例形式分析了php路由及類自動(dòng)加載的原理與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-03-03PHP中使用hidef擴(kuò)展代替define提高性能
這篇文章主要介紹了PHP中使用hidef擴(kuò)展代替define提高性能,本文著重測(cè)試hidef的性能,同時(shí)介紹了安裝方法和使用示例,需要的朋友可以參考下2015-04-04PHP pthreads v3在centos7平臺(tái)下的安裝與配置操作方法
這篇文章主要介紹了PHP pthreads v3在centos7平臺(tái)下的安裝與配置操作方法,結(jié)合圖文與實(shí)例形式分析了PHP pthreads v3在centos7平臺(tái)下的安裝與配置操作具體步驟、相關(guān)命令與注意事項(xiàng),需要的朋友可以參考下2020-02-02實(shí)現(xiàn) win2003 下 mysql 數(shù)據(jù)庫每天自動(dòng)備份
這篇文章主要為大家介紹下,如果用批處理實(shí)現(xiàn)mysql的自動(dòng)備份,需要的朋友可以參考下2006-12-12php中使用in_array() foreach array_search() 查找數(shù)組是否包含時(shí)的性能對(duì)比
這篇文章主要介紹了php中使用in_array() foreach array_search() 查找數(shù)組是否包含時(shí)的性能對(duì)比,需要的朋友可以參考下2015-04-04