使用 extract($variables) 获取内容,但变量未定义

Posted

技术标签:

【中文标题】使用 extract($variables) 获取内容,但变量未定义【英文标题】:Getting contents with extract($variables), but the variables are undefined 【发布时间】:2015-08-13 16:00:33 【问题描述】:

我还没有掌握 extract() 函数和传输变量的窍门。 我在用户控制器中有一个方法,其中定义了一些变量,并以数组的形式发送到父控制器中的视图函数,其中提取了数组。然后需要视图。但是变量结果是未定义的。但是可以打印数组内容。

这是具有简化配置文件功能的用户控制器:

class User extends Controller

    public function profile()

         $profiledetails = $this->profiledetails();           
         $profilestatus = $this->profileStatus();            

         $this->view('profile', [$profiledetails, $profilestatus]);
    

变量被发送到父Controller中的视图函数:

class Controller 
    public function view($view, $variables =[])                    

    extract($variables);

    require_once './app/views/' . $view . '.php';

在视图中,“profile.php”显示未定义变量错误。我认为“extract()”函数会使 $profiledetails 和 $profilestatus 在视图中作为变量可用。 我究竟做错了什么?也许我使用了错误类型的数组,或者我应该使用“variabe variables”之类的......(在这种情况下,如何?)。

【问题讨论】:

extract 想要一个关联数组。 确实如此,根据文档:php.net/manual/en/function.extract.php 【参考方案1】:

extract关联数组一起使用。

    $this->view('profile', 
      [
        'profiledetails' => $profiledetails, 
        'profilestatus' => $profilestatus
      ]);   

【讨论】:

非常棒。谢谢!

以上是关于使用 extract($variables) 获取内容,但变量未定义的主要内容,如果未能解决你的问题,请参考以下文章

idea Psi获取方法返回值

代码审计变量覆盖漏洞详解

如何使用 xPath (10g) 在 Oracle SQL extract() 中获取节点名称

pandas使用groupby函数进行分组聚合使用get_group函数获取指定分组的数据(extract specific group after groupby in dataframe)

从某一列中截取字符信息——extract()的使用

SQL 2005 存储过程结果集的 ODBC 执行/获取不能使用表 @variable