この元のコードを論理的に理解する方法
この投稿は 2015-03-27 22:59:53 に shopnc1 によって最終的に編集されました ロジックについて簡単に話しましょう もちろん、私はまだ理解していません。詳細は、おそらく私の意図を表現するためだと思います。
これは、MVC パターンである変数をスローするクラスです。
私が理解したいのは、次のコードが論理的にどのように対話するのかです。テンプレートに変数を追加するという目的を達成するために相互に連携します。最初に変数をスローする には、
という重要なメソッド があり、ここで getlnstance( ) メソッドは次のとおりです。
<br />class Tpl{<br /> /**<br /> * 抛出变量<br /> *<br /> * @param mixed $output<br /> * @param void<br /> */<br /> public static function output($output,$input=''){<br /> self::getInstance();<br /> <br /> self::$output_value[$output] = $input;<br /> }
ログイン後にコピー
<br />class Tpl{<br /> /**<br /> * 实例化<br /> *<br /> * @return obj<br /> */<br /> public static function getInstance(){<br /> if (self::$instance === null || !(self::$instance instanceof Tpl)){<br /> self::$instance = new Tpl();<br /> }<br /> return self::$instance;<br /> }
ログイン後にコピー
それでは、ここで質問です。
出力メソッドの self::getInstance(); は何ですか。ここで理解するのが難しいのは、$instance です。そうであれば、意味は何ですか?
class Tpl{<br /> /**<br /> * 单件对象<br /> */<br /> private static $instance = null;
ログイン後にコピー
私の理解では (もちろん正しくないかもしれませんが)、出力には 2 つの文が含まれています。メソッドは 2 つの可能性を示しているようです。そうであれば、なぜ if 判断する必要はありません。2 つの可能性があるからです。
別の質問があります
self::$output_value[$output] = $ input; なぜ self を追加するのでしょうか? これは単に配列を代入するだけではないでしょうか?
------- 解決策のアイデア------------------このテンプレート レンダリング クラスの実装には問題があります。詳しく調べる必要はありません。
public static function Output($output,$input=''){
self::getInstance();
このステートメントは、すべての静的メソッドを持つクラスには必要ありません。
self::$output_value[$output] = $input; }