概要
状態:-
閲覧数:3,055
投稿日:2014-01-08
更新日:2014-01-15
・同じファイルにあるかの如く、対象変数を展開実行
・共通レイアウトを読み込み、文字内容だけを変更して表示したりすることも可能
・view.php … 読み込まれる側のファイル(ビューファイル)
出力処理をviewへ記述
▼index.php
▼view.php
・処理結果
変数だけをviewへ記述
▼index.php
▼view.php
・処理結果
テンプレートっぽいviewの書き方
▼index.php
▼view.php
・処理結果
出力時点で、include 文で読込評価されていない変数は、 出力不可
▼index.php
▼view.php
・処理結果
・共通レイアウトを読み込み、文字内容だけを変更して表示したりすることも可能
・view.php … 読み込まれる側のファイル(ビューファイル)
グローバル変数
出力処理をviewへ記述
▼index.php
$greeting = 'こんにちは 嵐 さん';
include('view.php');
▼view.php
echo $greeting;
・処理結果
こんにちは 嵐 さん
変数だけをviewへ記述
▼index.php
$name = ' 嵐 さん';
include('view.php');
echo $greeting;
echo $name;
▼view.php
$greeting = 'こんにちは';
・処理結果
こんにちは 嵐 さん
テンプレートっぽいviewの書き方
▼index.php
$name = ' 嵐 ';
include 'view.php';
▼view.php
echo "こんにちは $name さん";
・処理結果
こんにちは 嵐 さん
出力時点で、include 文で読込評価されていない変数は、 出力不可
▼index.php
$name = ' 嵐 さん';
echo $greeting;
echo $name;
include('view.php');
▼view.php
$greeting = 'こんにちは';
・処理結果
嵐 さん
変数のスコープ範囲を関数内に限定
ローカル変数
関数内でincludeを実行することにより、変数のスコープ範囲を関数内に限定させる
・グローバル変数として扱わないやり方
▼index.php
$name = "スマップ"; //グローバル変数は関係ない
function display(){
$name = "嵐";
include 'view.php';
}
display();
▼view.php
echo "こんにちは $name さん";
・処理結果
こんにちは 嵐 さん
設定ファイル読込
設定ファイル外部化
・新たに設定ファイルを用意
・変数は配列へ格納するよう変更
▼index.php
$name = "スマップ"; //グローバル変数は関係ない
function display(){
include("config.php");
include("view.php");
}
display();
▼config.php … 設定ファイル
$data = array();
$data["name"] = "嵐";
$data["sex"] = "男性";
$data["number"] = "5";
$data["agency"] = "ジャニーズ事務所";
▼view.php … ビュー
・ 配列へ格納すると、ビューで展開する際、ちょっと面倒
echo "こんにちは ". $data["name"]." さん<br>";
echo $data["sex"]."<br>";
echo $data["number"]." 人<br>";
echo $data["agency"]."<br><br>";
・処理結果
こんにちは 嵐 さん
男性
5 人
ジャニーズ事務所
男性
5 人
ジャニーズ事務所
extract
extract 配列関数を利用
・引数に指定した連想配列$dataのキーを変数名、値を変数の値として、変数を作成
・配列を変数に展開してくれるため、view記述が簡潔になる(配列を使わなくても良くなる)
▼index.php
$name = "スマップ"; //グローバル変数は関係ない
function display(){
include("config.php");
extract($data); //引数に指定した連想配列$dataのキーを変数名、値を変数の値として、変数を作成
include("view.php");
}
display();
▼config.php … 設定ファイル
$data = array();
$data["name"] = "嵐";
$data["sex"] = "男性";
$data["number"] = "5";
$data["agency"] = "ジャニーズ事務所";
▼view.php … ビュー
echo "こんにちは $name さん<br>";
echo "$sex<br>";
echo "$number 人<br>";
echo "$agency<br><br>";
・処理結果
こんにちは 嵐 さん
男性
5 人
ジャニーズ事務所
男性
5 人
ジャニーズ事務所
クラス化
クラス対応
▼index.php
$name = "スマップ"; //グローバル変数は関係ない
class View {
function display(){
include("config.php");
include 'view.php';
}
}
$view = new View();
$view ->display();
▼config.php … 設定ファイル
$data = array();
$data["name"] = "嵐";
$data["sex"] = "男性";
$data["number"] = "5";
$data["agency"] = "ジャニーズ事務所";
▼view.php … ビュー
echo "こんにちは ".$data["name"]." さん<br>";
echo $data["sex"]."<br>";
echo $data["number"]." 人<br>";
echo $data["agency"]."<br>";
・処理結果
こんにちは 嵐 さん
男性
5 人
ジャニーズ事務所
男性
5 人
ジャニーズ事務所
表示するデータは引数で渡す
引数利用
▼index.php
//グローバル変数として読込
include("config.php");
class View {
function display($data){
extract($data);
include("view.php");
}
}
$view = new View();
$view ->display($data);
▼config.php … 設定ファイル
$data = array();
$data["name"] = "嵐";
$data["sex"] = "男性";
$data["number"] = "5";
$data["agency"] = "ジャニーズ事務所";
▼view.php … ビュー
echo "こんにちは $name さん<br>";
echo "$sex<br>";
echo "$number 人<br>";
echo "$agency<br>";
・処理結果
こんにちは 嵐 さん
男性
5 人
ジャニーズ事務所
男性
5 人
ジャニーズ事務所