ホームページ  >  記事  >  バックエンド開発  >  人を混乱させるロジック

人を混乱させるロジック

WBOY
WBOYオリジナル
2016-06-23 13:33:261477ブラウズ

説明の便宜上、色を変えて説明します
配列の定義についての質問です
フレームワーク内で まず、配列を統合するメソッドがクラス

/** に定義されています。 &* /
プライベート静的 $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);
次に、ここにテンプレートを記述します
2ca2f152129bb99062f1e02acb2c8876 さて、ここに私のコードがあります。質問:
上記の一連の計算により、配列ライブラリのデータが取得され、配列にデータが配置されます。このとき、テンプレートに記述するときは、まず配列の名前を知る必要があります。その後、添字を照合することで配列内の対応する値を取得できます。ここで、なぜ配列が $output という名前になっているのかという疑問が生じます。
この名前はランダムに選ばれたのでしょうか、それとも文脈上の合意があるのでしょうか? 上記の記事を調べたところ、この名前には定義がないことがわかり、突然現れたので人々は唖然としています。説明は何ですか?

私の現在の理解: おそらく、Tpl::output('web_html',$web_html); という文の出力がそれを示していると言う人もいるでしょう。これは、ここでは配列ではなくメソッド名であるためです。名前!
private static $output_value = array(); 上で /**
* テンプレートの内容の配列を出力します。他の変数をプログラムからテンプレートに直接出力することはできません
*/ が定義されているとのことですが、ここでは配列名として $output_value を使用せず、配列名として $output を使用するのはなぜでしょうか。




ディスカッションへの返信 (解決策)

$output 配列が Tpl::output の関数で定義されている可能性があります
あなたが尋ねてきた質問を見ると、私はあなたが初心者 (質問のレベルが非常に高い場合もあります)

では、関数 (メソッド) を定義するときの仮パラメータがわかりませんか?

public static function Output( $output, $input=''){

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'];



次のように他の場所に割り当てられる場合もあります: $output = $output_value;
完全なクラスの記述方法によって異なります。

Tpl にある可能性があります $output 配列は ::output の関数で定義されています

//テンプレート変数に値を代入する

$output = self::$output_value; が含まれていることを思い出しました。

これまでの質問を拝見すると、初心者ではないことが分かりました(質問のレベルが非常に高い場合もあります)

では、なぜ関数(メソッド)を定義する際の仮引数を知らないのですか?

public static function Output( $output, $input=''){
self::getInstance();
self::$output_value[ $output] = $input;
出力メソッドの 2 つの入力パラメーター、彼に名前を付けなければなりませんよね?それ以外の場合、誰が誰であるかを知る方法 このように最初のパラメータと 2 番目のパラメータを呼び出すことはできません

Tpl::output('web_html',$web_html); を実行する場合、'web_html' はパラメータ $output に対応します。

$web_html パラメーター $input に対応します

あなたは私が何を求めているのか理解できませんでした、それは主題から外れています

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