php function用法如何递归及return和echo区别


Posted in PHP onMarch 07, 2014
<?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 相关文章推荐
mysql 全文搜索 技巧
Apr 27 PHP
php下关于中英数字混排的字符串分割问题
Apr 06 PHP
来自phpguru得Php Cache类源码
Apr 15 PHP
360通用php防护代码(使用操作详解)
Jun 18 PHP
ThinkPHP采用实现三级循环代码实例
Jul 18 PHP
php转换颜色为其反色的方法
Apr 27 PHP
php自定义分页类完整实例
Dec 25 PHP
利用php的ob缓存机制实现页面静态化方法
Jul 09 PHP
php+ajax实现异步上传文件或图片功能
Jul 18 PHP
php mysql数据库操作类(实例讲解)
Aug 06 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
Jun 14 PHP
php转换上传word文件为PDF的方法【基于COM组件】
Jun 10 PHP
详解PHP中strlen和mb_strlen函数的区别
Mar 07 #PHP
解决Codeigniter不能上传rar和zip压缩包问题
Mar 07 #PHP
php 生成自动创建文件夹并上传文件的示例代码
Mar 07 #PHP
根据ip调用新浪api获取城市名并转成拼音
Mar 07 #PHP
体育彩票排列三组选三算法分享
Mar 07 #PHP
PHP错误和异长常处理总结
Mar 06 #PHP
php发送post请求函数分享
Mar 06 #PHP
You might like
php bootstrap实现简单登录
2016/03/08 PHP
js函数调用常用方法详解
2012/12/03 Javascript
关于JavaScript中string 的replace
2013/04/12 Javascript
鼠标滑在标题上显示图片的JS代码
2013/11/19 Javascript
JavaScript中的正则表达式简明总结
2014/04/04 Javascript
原生javascript实现简单的datagrid数据表格
2015/01/02 Javascript
Node.js实现兼容IE789的文件上传进度条
2016/09/02 Javascript
详解使用Vue.Js结合Jquery Ajax加载数据的两种方式
2017/01/10 Javascript
ajax接收后台数据在html页面显示
2017/02/19 Javascript
jQuery Chosen通用初始化
2017/03/07 Javascript
Node+Express+MongoDB实现登录注册功能实例
2017/04/23 Javascript
Nodejs中使用phantom将html转为pdf或图片格式的方法
2017/09/18 NodeJs
React如何利用相对于根目录进行引用组件详解
2017/10/09 Javascript
JS实现快递单打印功能【推荐】
2018/06/21 Javascript
详解如何在Vue里建立长按指令
2018/08/20 Javascript
VUE中V-IF条件判断改变元素的样式操作
2020/08/09 Javascript
基于openlayers实现角度测量功能
2020/09/28 Javascript
[09:47]2018DOTA2亚洲邀请赛4.5SOLO赛 No[o]ne vs Sumail
2018/04/06 DOTA
[53:03]Optic vs TNC 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
Python selenium 父子、兄弟、相邻节点定位方式详解
2016/09/15 Python
实例讲解python中的协程
2018/10/08 Python
python: 判断tuple、list、dict是否为空的方法
2018/10/22 Python
Python中新式类与经典类的区别详析
2019/07/10 Python
Python3离线安装Requests模块问题
2019/10/13 Python
Python 余弦相似度与皮尔逊相关系数 计算实例
2019/12/23 Python
在Python中用GDAL实现矢量对栅格的切割实例
2020/03/11 Python
Python图像阈值化处理及算法比对实例解析
2020/06/19 Python
Biblibili视频投稿接口分析并以Python实现自动投稿功能
2021/02/05 Python
详解background属性的8个属性值(面试题)
2020/11/02 HTML / CSS
英国领先的独立时装店:Van Mildert
2019/10/28 全球购物
森林防火标语
2014/06/23 职场文书
学校运动会报道稿
2014/09/23 职场文书
2014年重阳节老干部座谈会上的讲话稿
2014/09/25 职场文书
2015年党支部书记工作总结
2015/05/21 职场文书
致运动员的广播稿
2015/08/19 职场文书
市级三好生竞选稿
2015/11/21 职场文书