I would like to ask you a strange question about phpcms. the following code is rewritten from the libs \ function \ global. func. php file of phpcms.
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 );}
This method is used to obtain the data array from the cache and link it with the specified link symbol. I believe that those who have used phpcms should have seen it. This method will be recursive three times. I have a strange problem here, that is, when
When the value of $ menu_arr [$ menuid] [$ parentkey] is equal to 0, the recursion of the menu_level method is no longer performed.
If there is no problem locally, this problem occurs on the server.
Has anyone ever encountered this problem?
Reply to discussion (solution)
Recursion is performed only when $ menu_arr [$ menuid] exists.
Whether $ menu_arr [$ menuid] exists depends on your cache file.