ホームページ > バックエンド開発 > PHPチュートリアル > PHPにおける再帰関数の戻り値の使い方入門(ecshop無制限分類)_PHPチュートリアル

PHPにおける再帰関数の戻り値の使い方入門(ecshop無制限分類)_PHPチュートリアル

WBOY
リリース: 2016-07-13 16:56:19
オリジナル
726 人が閲覧しました

ecshop 無限分類を例として使用した、PHP の再帰関数の戻り値の紹介。

ecshopの二次開発で商品カテゴリのインデックス作成を行う場合、カテゴリIDを元に最上位のカテゴリIDを取得する必要があります。最初の反応は再帰を使用することでしたので、次のように再帰関数を書きました:

テストプログラム、戻り値なし?長時間チェックしても異常は見つからず、どうやら脳の回路が壊れたようだ。今日、水の神様(心優しいネチズン)に質問したところ、答えてくれました。修正は次のとおりです。
コードは次のとおりです コードをコピー

関数getCatTopId($cat_id)
{
($cat_id) の場合
{
$res = Array();
$sql = 'SELECT cat_id,parent_id'
。 ' から ' ' WHERE cat_id = ' $cat_id .
$res = $GLOBALS['db']->getAll($sql);

if ($res[0]['parent_id'] > 0)

{

getCatTopId($res[0]['parent_id']);
}
その他
{
return $res[0]['cat_id'];
}
}
それ以外
{
return 1;
}
}

コードは次のとおりです関数getCatTopId($cat_id)
コードをコピー
{

($cat_id) の場合
{
$res = Array();

$sql = 'SELECT cat_id,parent_id'

。 ' から ' ' WHERE cat_id = ' $cat_id .

$res = $GLOBALS['db']->getAll($sql);

if ($res[0]['parent_id'] > 0)

{

return getCatTopId($res[0]['parent_id']) // 関数が値を返すようにさらに return を記述します

}

その他
{
return $res[0]['cat_id'];
                                       それ以外
{
return 1;
}
}




関数は内部で書かれており、戻っても内部関数の位置に戻るだけなので、外側に別のmain関数の層があり、それを再度返す必要があります

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/631608.html技術記事 ecshop の無限分類を例として、PHP の再帰関数の戻り値の問題の紹介。 ECSHOPの二次開発で商品カテゴリーのインデックス作成を行う場合、カテゴリーIDからカテゴリーを取得する必要があります...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート