实用代码 2025年05月31日
0 收藏 0 点赞 445 浏览 829 个字
摘要 :

面包屑导航是系统开发中常见的功能点。实现面包屑导航的方法也是非常的多。我们今天的方法主要是通过子菜单ID查找父菜单的ID,下级查找上级的方式。 function bread($cid……

面包屑导航是系统开发中常见的功能点。实现面包屑导航的方法也是非常的多。我们今天的方法主要是通过子菜单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、请您认真阅读上述内容,注册本站用户或下载本站资源即您同意上述内容! 5、转载请注明出处! 转载请注明出处:https://www.xjuyun.top/87.html

常见问题
相关推荐
2025-05-31

if(isset($_SERVER[‘HTTP_X_CLIENT_SCHEME’])){ $scheme = $_SERVER[‘HTTP_X_CLI…

2025-05-31

判断是否是微信内置浏览器 function isWeixin() { if (strpos($_SERVER['HTTP_USER_AGENT'], 'M…

2025-05-31

面包屑导航是系统开发中常见的功能点。实现面包屑导航的方法也是非常的多。我们今天的方法主要是通…

2025-05-31

截图演示: 下面是源码,很简单: <style type=text/css> A:link{ color:#FFFFFF; font-s…

2025-05-31

源码简介: python批量爬取主页视频,输入作者id就可批量爬取视频,懂的都懂 自动保存到D:/video/文…

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:8:00-16:00

客服电话

13302283474

客服邮箱

3896976069@qq.com

扫描二维码

关注微信公众号

扫描二维码

手机访问本站