想问大家一个phpcms梨奇怪的问题
程序员文章站
2022-06-02 08:59:07
...
以下代码是我从phpcms的libs\function\global.func.php文件中复制来的。
这个方法是用来从缓存里获取数据数组,然后用指定的链接符号进行链接的方法,相信用过phpcms的同志们应该见到过。这个方法会递归3次,我这里出现了一个奇怪的问题,就是当
$menu_arr[$menuid][$parentkey]的值等于0的时候,menu_level方法的递归便不再进行了。
本地没有问题,服务器上就会出这个问题。
有人碰到过这个问题吗?
function menu_level($menuid, $cache_file, $cache_path = 'commons', $key = 'catname', $parentkey = 'parentid', $linkstring = ' > ', $result=array()) { $menu_arr = getcache($cache_file, $cache_path); if (array_key_exists($menuid, $menu_arr)) { $result[] = $menu_arr[$menuid][$key]; return menu_level($menu_arr[$menuid][$parentkey], $cache_file, $cache_path, $key, $parentkey, $linkstring, $result); } krsort($result); return implode($linkstring, $result);}
这个方法是用来从缓存里获取数据数组,然后用指定的链接符号进行链接的方法,相信用过phpcms的同志们应该见到过。这个方法会递归3次,我这里出现了一个奇怪的问题,就是当
$menu_arr[$menuid][$parentkey]的值等于0的时候,menu_level方法的递归便不再进行了。
本地没有问题,服务器上就会出这个问题。
有人碰到过这个问题吗?
回复讨论(解决方案)
只有当 $menu_arr[$menuid] 存在时,递归才会进行下去
至于 $menu_arr[$menuid] 是否存在,则取决于你的缓存文件
上一篇: 一串失败的代码,但是很有借鉴的意义