$this
ここでは、現在のコントローラー クラスを参照します。components/Controller.phpにコントローラーが表示されている場合は、$breadCrumbs=array();
. ビューの決定的なガイドを参照してください:
ビュー スクリプト内では、$thisを使用してコントローラー インスタンスにアクセスできます。したがって、ビューで$this->propertyNameを評価することにより、コントローラーの任意のプロパティを取得できます。
コントローラーは、最終的にrenderInternalを使用してビューをレンダリングします。そして、その関数のソースを見ると、phprequire()
が表示されます:
public function renderInternal($_viewFile_,$_data_=null,$_return_=false)
{
// we use special variable names here to avoid conflict when extracting data
if(is_array($_data_))
extract($_data_,EXTR_PREFIX_SAME,'data');
else
$data=$_data_;
if($_return_)
{
ob_start();
ob_implicit_flush(false);
require($_viewFile_);
return ob_get_clean();
}
else
require($_viewFile_);
}
また、require が使用されているため、コードが含まれている時点で $this を使用できます。
ファイルがインクルードされると、そこに含まれるコードは、インクルードが発生した行の変数スコープを継承します。呼び出しファイルのその行で使用可能な変数は、その時点以降、呼び出されたファイル内で使用できます。ただし、インクルード ファイルで定義されているすべての関数とクラスには、グローバル スコープがあります。
したがって、これを行うと$this->render('view');
、view
$ にアクセスできるようになりますthis
。