ホームページ  >  記事  >  バックエンド開発  >  PHP での Smarty の使用 パート 1: Variables の使用_PHP チュートリアル

PHP での Smarty の使用 パート 1: Variables の使用_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:46:40744ブラウズ

Smarty のすべてのアクセスは変数に基づいています。以下に例を示します。

アイデアの例: メイン ファイルでは、テンプレート初期化設定ファイル (init.inc.php) とクラスが導入され、テンプレート内の変数に値が割り当てられます。

まず、Smartyテンプレートの初期設定ファイルとしてinit.inc.phpファイルを設定します

init.inc.php

define('ROOT_PATH', dirname(__FILE__)); //Web サイトのルート ディレクトリを定義します

require ROOT_PATH.'/libs/Smarty.class.php' //Smarty ファイルをロードします

;

$_tpl = new Smarty() // オブジェクトをインスタンス化します

;

$_tpl->template_dir = ROOT_PATH.'/tpl/' // テンプレート ディレクトリをルート ディレクトリ下の tpl ディレクトリに再設定します

$_tpl->compile_dir = ROOT_PATH.'./com/' //コンパイルディレクトリをルートディレクトリ下の com ディレクトリにリセットします

$_tpl->left_delimiter = '<{' //左区切り文字を '<{' にリセットします

;

$_tpl->right_delimiter = '}>' //左の区切り文字を '}>' にリセットします

?>

メインファイルindex.php

require 'init.inc.php' //テンプレート初期化ファイルを導入します

;

require 'Persion.class.php' // オブジェクトファイルをロードします

;

グローバル $_tpl;

$title = 'これはタイトルです!';

$content = 'これは本文のコンテンツです!';

/*

* 1. PHP からテンプレート変数に代入します。

* 動的データ (データベースまたはファイルからの PHP、およびアルゴリズムによって生成された変数)

※PHPからは主に以下のようなあらゆる種類のデータを割り当てることができます

* スカラー: string、int、double、boolean

* 複合: 配列、オブジェクト

* * ヌル

* インデックス配列はインデックスを通じて直接アクセスされます

* 連想配列の場合は、[連想添字] を使用する代わりに、添字

を使用します。

* オブジェクトには ->

を通じて直接アクセスします。

* */

$_tpl->assign('タイトル',$タイトル);

$_tpl->assign('content',$content) //変数の代入

$_tpl->assign('arr1',array('abc','def','ghi')) //インデックス配列の代入

$_tpl->assign('arr2',array(array('abc','def','ghi'),array('jkl','mno','pqr'))); //インデックス 2-次元配列の代入

$_tpl->assign('arr3',array('one'=>'111','two'=>'222','three'=>'333')); //連想配列の代入

$_tpl->assign('arr4',array('one'=>array('one'=>'111','two'=>'222'),'two'=>array( 'three'=>'333','four'=>'444'))) //関連する 2 次元配列の代入

$_tpl->assign('arr5',array('one'=>array('111','222'),array('three'=>'333','444'))) / /連想配列とインデックス付き混合配列の代入

$_tpl->assign('object',new Persion('Xiaoyi', 10)); //オブジェクトの割り当て

//Smarty値も計算可能(+-*/^...)

$_tpl->assign('num1',10);

$_tpl->assign('num2',20);

$_tpl->display('index.tpl');

?>

メインファイルindex.phpのテンプレートファイルindex.tpl(/tpl/ディレクトリに保存)

http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

http://www.w3.org/1999/xhtml">

                                                                                              

変数アクセス: <{$content}>


インデックス配列アクセス: <{$arr1[0]}<{$arr1[2]}>


インデックス付き 2 次元配列へのアクセス: <{$arr2[0][0]}<{$arr2[0][1]}> <{$arr2[1][0]}<{$arr2[1][1]}>


連想配列へのアクセス: <{$arr3.one}<{$arr3.two}>


連想 2 次元配列へのアクセス: <{$arr4.one.one}<{$arr4.one.two}<{$arr4.two.three}< 2 .4}>


混合連想配列へのアクセス: <{$arr5.one[0]}<{$arr5.one[1]}<{$arr5[0].three}< $arr5[0][0]}>


オブジェクト内のメンバー変数へのアクセス: <{$object->name}> {$object->age}>

                                                                           

オブジェクト内のメソッドへのアクセス: <{$object->hello()}>


変数の操作: <{$num1+$num2}>


変数の混合演算: <{$num1+$num2*$num2/$num1+44}>


Persion.class.php

クラスパーション {

public $name //アクセスしやすいように public に設定します

;

公開 $age

//構築メソッドを定義します

パブリック関数 __construct($name,$age) {

$this->name = $name;

$this->age = $age;

}

//名前と年齢を出力するための hello() メソッドを定義します

パブリック関数 hello() {

return 「こんにちは!」私の名前は「.$this->name.」、今年「.$this->age.」です。 ';

}

}

?>

実行結果:

可変アクセス: これは本文のコンテンツです!

インデックス配列アクセス: abc def ghi

インデックス付き 2 次元配列へのアクセス: abc def ghi jkl mno pqr

連想配列へのアクセス: 111 222 333

連想二次元配列へのアクセス: 111 222 333 444

混合連想配列とインデックス付き配列へのアクセス: 111 222 333 444

オブジェクト内のメンバー変数へのアクセス: Xiaoyi 10

オブジェクト内のメソッドへのアクセス: こんにちは!私の名前はシャオイー、今年10歳です。

変数の操作: 30

変数に対する混合演算: 94

leeさんのコラムより抜粋

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/478576.html技術記事 Smarty のすべてのアクセスは変数に基づいています。以下に例を示します。 アイデアの例: メイン ファイルは、テンプレートを導入することで構成ファイル (init.inc.php) とクラスを初期化します...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。