使用 extract($variables) 获取内容,但变量未定义
Getting contents with extract($variables), but the variables are undefined
我还没有掌握 extract() 函数和传递变量的窍门。
我在用户控制器中有一个方法,其中定义了一些变量,并以数组形式发送到父控制器中的视图函数,其中提取了数组。然后需要视图。但是变量结果未定义。虽然可以打印数组内容。
这是具有简化配置文件功能的用户控制器:
class User extends Controller{
public function profile(){
$profiledetails = $this->profiledetails();
$profilestatus = $this->profileStatus();
$this->view('profile', [$profiledetails, $profilestatus]);
}}
变量被发送到父控制器中的视图函数:
class Controller {
public function view($view, $variables =[]){
extract($variables);
require_once './app/views/' . $view . '.php';
}}
并且在视图中,'profile.php',显示了未定义的变量错误。我认为 "extract()" 函数会使 $profiledetails 和 $profilestatus 在视图中作为变量可用。
我究竟做错了什么?也许我使用了错误类型的数组,或者我应该使用 "variabe variables" 或其他东西..(在那种情况下,如何?)。
extract
使用 关联数组 。
$this->view('profile',
[
'profiledetails' => $profiledetails,
'profilestatus' => $profilestatus
]);
我还没有掌握 extract() 函数和传递变量的窍门。 我在用户控制器中有一个方法,其中定义了一些变量,并以数组形式发送到父控制器中的视图函数,其中提取了数组。然后需要视图。但是变量结果未定义。虽然可以打印数组内容。
这是具有简化配置文件功能的用户控制器:
class User extends Controller{
public function profile(){
$profiledetails = $this->profiledetails();
$profilestatus = $this->profileStatus();
$this->view('profile', [$profiledetails, $profilestatus]);
}}
变量被发送到父控制器中的视图函数:
class Controller {
public function view($view, $variables =[]){
extract($variables);
require_once './app/views/' . $view . '.php';
}}
并且在视图中,'profile.php',显示了未定义的变量错误。我认为 "extract()" 函数会使 $profiledetails 和 $profilestatus 在视图中作为变量可用。 我究竟做错了什么?也许我使用了错误类型的数组,或者我应该使用 "variabe variables" 或其他东西..(在那种情况下,如何?)。
extract
使用 关联数组 。
$this->view('profile',
[
'profiledetails' => $profiledetails,
'profilestatus' => $profilestatus
]);