わかりにくいロジック

WBOY
リリース: 2016-06-13 12:21:10
オリジナル
2664 人が閲覧しました

人々を混乱させるロジック

この投稿は 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;完全なクラスの記述方法によって異なります
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート