ホームページ >バックエンド開発 >PHPチュートリアル >phpcms について奇妙な質問をしたいのですが

phpcms について奇妙な質問をしたいのですが

WBOY
WBOYオリジナル
2016-06-23 14:02:56760ブラウズ

次のコードは、phpcms の libsfunctionglobal.func.php ファイルからコピーされました。

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] が存在するかどうかはキャッシュファイルに依存します

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。