説明の便宜上、色を変えて説明します
配列の定義についての質問です
フレームワーク内で まず、配列を統合するメソッドがクラス
/** に定義されています。 &* /
プライベート静的 $output_value = array();
パブリック静的関数出力($output,$input=''){
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 を使用するのはなぜでしょうか。
ディスカッションへの返信 (解決策)
$output 配列が Tpl::output の関数で定義されている可能性があります
self::getInstance();
self::$output_value[ $output] = $input; 出力メソッドの 2 つの入力パラメーター、彼に名前を付けなければなりませんよね?それ以外の場合、誰が誰であるかを知る方法
このように最初のパラメータと 2 番目のパラメータを呼び出すことはできません
Tpl::output('web_html',$web_html); を実行する場合、'web_html' はパラメータ $output に対応します。
$web_html パラメータ $input に対応します
出力メソッドで定義される場合もあります
$web_html = array('index'=>'xxx');output('web_html',$web_html);function output($key, $value){ global $output; $output[$key] = $value; return $output;}echo $output['web_html']['index'];
Tpl にある可能性があります $output 配列は ::output の関数で定義されています
$output = self::$output_value; が含まれていることを思い出しました。
これまでの質問を拝見すると、初心者ではないことが分かりました(質問のレベルが非常に高い場合もあります)
では、なぜ関数(メソッド)を定義する際の仮引数を知らないのですか?
public static function Output( $output, $input=''){Tpl::output('web_html',$web_html); を実行する場合、'web_html' はパラメータ $output に対応します。
$web_html パラメーター $input に対応します
あなたは私が何を求めているのか理解できませんでした、それは主題から外れています