简易面包屑导航实现代码
分类:实用代码
时间:2023-04-13 14:28
浏览:0
评论:0
面包屑导航是系统开发中常见的功能点。实现面包屑导航的方法也是非常的多。我们今天的方法主要是通过子菜单ID查找父菜单的ID,下级查找上级的方式。
function bread($cid, $symbol=' > ', $target = '_self', $str=''){ static $categorys; global $str; // 注意此处必须是全局变量 if(empty($categorys)) { $categorys = get_cache('category','content'); /// 读取栏目缓存里的栏目信息 } $pid = $categorys[$cid]['pid']; if($pid!=0) { bread($pid, $symbol,$target, $str=''); } $str.=''.$categorys[$cid]['name'].''; // 组装Url $str.=$symbol; return $str; }
递归在遍历里是非常方便的,我们本例子中就递归调用bread函数自身,最后返回$str拼接返回的结果。这里代码执行的顺序是不断调用函数自身,到最后$pid = 0 时才执行拼接代码,并返回return。
这里大家可能不是很好理解,我们举个简单的例子
function test($a=0){ $a++; if ($a<10) { test($a); } echo $a.'->'; } echo test();
执行的结果大家觉得是什么呢?
是 1->2->3->...10-> ? 还是 10->9->...1->
是的,我们这里的执行结果是:
10->9->8->7->6->5->4->3->2->1->
本例比较有意思的是echo a 的值。相信很多人认为是12345678910吧,其实不然,是1098765432。为什么呢?因为函数还没执行echo a前就进行了下一次的函数递归。
真正执行echo a是当a<10条件不满足的时候,echo a,对于上一层而言,执行完递归函数,开始执行本层的echo $a,依次类推。
1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 实用代码 > 简易面包屑导航实现代码
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 实用代码 > 简易面包屑导航实现代码