phpを学ぶ友人の中には、スキルアップの手段としてオンラインモールを構築しようとする人も多いと思います。商品分類や商品名などのさまざまな操作に慣れてきたら、無制限に分類リストを作成してみましょう。
インターネットで PHP Infinitus の分類を調べてみましたが、同じものが多く、また、コードが非常に多いので、どうやって学習すればよいでしょうか。 Infinitus の分類は自分たちでいじるべきです。
無限分類とは何ですか?
無限レベル分類は、部門組織、記事分類、主題分類などの分類手法です。無限レベル分類は、単純に分類として理解できます。実際、よく考えてみると、服は紳士服と婦人服、トップスとパンツに分けることができ、また年齢層によっても分類することができます。分類はどこにでも存在し、分類は「無限」であるように見えます。無限分類の必要性についてはここでは話しません。
無限分類の原理の紹介
無限分類というと「高尚」に見えるかもしれませんが、実は原理はとてもシンプルです。無制限の分類には、コードの創意工夫が必要なだけでなく、データベース設計の合理性も必要になります。無限の分類を満たすには、データベースに id と pid という 2 つの必須フィールドが必要です。 id はそれ自体を識別するために使用され、pid は親 ID を示すために使用されます。言い換えれば、各分類レコードはそれ自体を説明するだけでなく、最も密接に関係している別の ID も説明します。複雑そうに見えた問題も、ちょっとした工夫で解決しました。
早速、この記事の例を紹介します。
熱心な海賊ファンとして、この記事では「ワンピース」のキャラクター編成を例に挙げていきます。
データベースの準備:
時計ワンピースを作ろう:
リーリーテストデータを挿入:
リーリーこれは今でも普及科学に基づいたワンピースの設定です、世界は海軍、海賊、革命軍の三大陣営に分かれています。海軍には青キジ、赤犬、黄猿という大将がいます。海賊には四皇、七武海、麦わらの一味がいます。四皇にはシャンクス、七武海にはドフラミンゴやクロコダイル、麦わらの一味にはゾロがいます。 (宣伝: ワンピースは本当に良いです)。
最終目標:
今日作っているのは、ドロップダウンリスト型とナビゲーションリンク型の2つの無限分類フォームです。レンダリングは直接アップロードされます:
ドロップダウンリストの式
ナビゲーションリンクスタイル
サンプルコード:
diaplayList()を呼び出してドロップダウンリストフォームを表示し、diaplayLinkを呼び出してナビゲーションリンクカテゴリを表示するUnlimitedクラスをカプセル化しました。カテゴリを追加 (addNodes()) および削除 (deleteNodes) することもできます。
リーリークラス内の関数は主に再帰関数の手法を採用しています。再帰関数を深く理解していれば、残りは理解できます。再帰関数を実装する 3 つの方法については、後のセクションで詳しく説明します。
別の例を見てみましょう:
まず分類情報テーブルを作成します:
リーリーデータを挿入します:
リーリー以下はPHPコードです:
リーリー最終結果を見てみましょう
この記事では再帰を使用した無限分類を紹介していますが、実際には、分類が増えるほど再帰の効率が低下することは誰もが知っています。再帰が何をするのか。