ホームページ >バックエンド開発 >PHPチュートリアル >この元のコードを論理的に理解するにはどうすればよいでしょうか?

この元のコードを論理的に理解するにはどうすればよいでしょうか?

WBOY
WBOYオリジナル
2016-06-13 12:17:05885ブラウズ

この元のコードを論理的に理解する方法

この投稿は 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; }

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