ホームページ >バックエンド開発 >PHPチュートリアル >ThinkPHP で PHP 変数をテンプレートに転送する原理の簡単な分析

ThinkPHP で PHP 変数をテンプレートに転送する原理の簡単な分析

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-06-13 12:53:05907ブラウズ

ThinkPHP で PHP 変数をテンプレートに渡す原理の簡単な分析

プログラマーは先人の肩の上に立って前進する必要があります。 したがって、プログラマーにとって、優れたオープンソース製品を分析し、フレームワーク。

最近、バックグラウンドでPHPテンプレートを使用して独自にプログラムを作成しようとしています。簡単に言うと、テンプレート内でオリジナルのPHPコードを使用してコンテンツをループさせて表示します。

$this->display();


これは、thinkphp を使用している友人にはおなじみのはずです。これは、テンプレートを参照するコードです。冒頭にこんなことを書きました

		$list = $this->query('select * from %pre%yiciconf where left(`key`,4)=\'sys_\'');
		$setting = array();
		if (!empty($list)) {
			foreach ($list as $value){
				$setting[$value['key']] = $value['value'];
			}
		}
		
		$this->display();

テンプレート内で設定が見つからないというエラーが報告されました。テンプレートの参照が表示されているため、ここで宣言された変数はすべてクラスメソッドです。これは困ったことですか?

最初はスーパーグローバル転送のグローバルも考えましたが、よく考えたら効率が悪いようで、どのリファレンスもこう書いてある、考えてみれば書けば書くほど増えていきます。維持するのも読むのも難しいです。この変数がテンプレートで参照されていることを自分自身と読者に知らせる必要があるため、

に注目しました。

$this->assign()

一般的に、一般的なプロセスは次のとおりです。

1. array() の初期値を使用してクラス変数を宣言します

protected $_var = array();

2. assign メソッドを使用してローカル変数をクラス変数に転送します

$this->_var[$name] = $value;

3. メソッド表示で、extract 関数を使用して $this->_var を現在のメソッドのローカル変数に分解し、表示 でテンプレートを適用します。

include $tplfile;

最後に:

		$list = $this->query('select * from %pre%yiciconf where left(`key`,4)=\'sys_\'');
		$setting = array();
		if (!empty($list)) {
			foreach ($list as $value){
				$setting[$value['key']] = $value['value'];
			}
		}
		$this->assign('setting', $setting);
		$this->display();


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