人々を混乱させるロジック
この投稿は tp_2015_3 によって最終編集されました: 2015-06-02 12:47:28 説明の便宜上、異なる色を使用して説明します
フレームワーク内での配列
の定義についての質問です。 まず、配列を統合するメソッドが
/**
* テンプレートの内容の配列を出力します。プログラム
から他の変数を直接テンプレートに出力することはできません。* クラスで定義されています。 /
private static $output_value = array();public static 関数 Output($output,$input=''){
self::getInstance();
self::$output_value[$output] = $input;
}実際のアプリケーションでは、ファイル内では次のように記述されます //セクション情報
$model_web_config = Model('web_config');
$web_html = $model_web_config->getWebHtml('index');
Tpl::output('web_html',$web_html );次に、テンプレートにここに記述します さて、質問です。
上記の一連の計算を通じて、配列ライブラリ内のデータを取得し、そのデータを配列に配置しました。このとき、テンプレートに記述するときは、まず配列の名前を知る必要があります。その後、添字を照合することで配列内の対応する値を取得できます。ここで、なぜ配列が という名前になっているのかという疑問が生じます。 $output はどうでしょうか?
この名前はランダムに選ばれたのでしょうか、それとも文脈上の合意があるのでしょうか? 上記の記事を見たところ、この名前には定義がないことがわかり、突然現れたので人々は唖然としています。説明は何ですか? 私の現在の理解: おそらく、この文の出力がそれを示していると言う人もいるかもしれません Tpl::output('web_html',$web_html); ここではメソッドであるため、そうではないと思います。配列名ではなく名前です! /**
* テンプレートの内容の配列を出力します。プログラム
から他の変数を直接テンプレートに出力することはできません。*/
private static $output_value = array(); と書かれていますが、なぜ $output_value の代わりに $output_value が使用されるのでしょうか? -----解決策----------------------
Tpl::output の関数で定義されている可能性があります $output 配列------解決策のアイデア----------------------
が出力される場合があります メソッドは <br />$web_html = array('index'=>'xxx');<br />output('web_html',$web_html);<br /><br />function output($key, $value){<br /> global $output;<br /> $output[$key] = $value;<br /> return $output;<br />}<br />echo $output['web_html']['index'];<br />
ログイン後にコピー
-----ソリューションのアイデア----------------------
value は、次のように他の場所に割り当てられる場合があります。 $output = $output_value;
完全なクラスの記述方法によって異なります