我试图将我的 $viewData 放入局部变量中。这是我的功能:
function view($layout, $view, $var)
{
extract($var);
include($layout);
}
Run Code Online (Sandbox Code Playgroud)
这是我如何使用它:
$viewData = array($hasImages->arr, $latest->arr, $mostViewed->arr, $all->arr, $this->error);
$this->view('/view/shared/layout.php', '/view/home.php', $viewData);
Run Code Online (Sandbox Code Playgroud)
extract 方法在 $this->error 字符串上工作正常,但不适用于任何数组,例如 $hasImages->arr。它似乎没有在本地上下文中创建变量。
如何将数组放入我的函数中?
extract() 需要一个关联数组,因此它具有在其调用的范围内从中派生变量名称的键。
// Pass in an associative array
$viewData = array(
'hasImages' => $hasImages->arr,
'latest' => $latest->arr,
'mostViewed' => $mostViewed->arr,
'all' => $all->arr,
'error' => $this->error
);
// After extract(), will produce
$hasImages
$latest
$mostViewed
$all
$error
Run Code Online (Sandbox Code Playgroud)
但是,我会质疑使用的实用性extract()。相反,使用上面的关联数组可能更具可读性,并通过$var['mostViewed']['something']方法内部的键访问它。
| 归档时间: |
|
| 查看次数: |
2015 次 |
| 最近记录: |