少し奇妙な質問ですが、我慢してください。私は主に学習目的で小さなMVCフレームワークを書いています。ビューをロードするときは、ビューファイルをインクルードしてから使用するだけなextract($data);
ので、ビューで変数を使用できます。これは、私のコントローラーでは次のようになります。
// Assign view variables and load the views
$data = array('title' => 'testing the framework',
'users' => $this->models['Users']->getAllUsers());
$this->loadViews(array('header', 'home', 'footer'), $data);
それは完全に機能しますが、プロジェクトの他の場所にまたはと呼ばれる変数がある場合$title
、$users
それらは私が行っているものと競合することにextract()
気づきました。これはまだ問題になっていないのですが、問題が発生する前に今すぐ対処する必要があると感じています。
私が見つけた唯一の解決策は、extract()
編集される変数にプレフィックスを使用することです。<?php echo $tpl_whatever; ?>
だから私は代わりに私のテンプレートでそれらを使うことができます<?php echo $whatever; ?>
誰かアドバイスはありますか?たぶん、変数のスコープを制限する方法はありますか?
ありがとう!