代码之家  ›  专栏  ›  技术社区  ›  Tom K

如何将字符串中的数组路径求值为实际数组路径

  •  -1
  • Tom K  · 技术社区  · 7 年前

    我在变量中保存了以下文本字符串 $path

    $path = "['parent']['son']"; 
    

    $_SESSION['parent']['son']
    

    我想我可以用这个 eval

    1 回复  |  直到 7 年前
        1
  •  1
  •   Andreas    7 年前

    不需要评估。

    $path = "['parent']['son']"; 
    
    $arr = explode("']['", $path);
    
    $ret = $_SESSION;
    
    foreach($arr as $val){
        $key = str_replace(["'", "]", "["], "", $val);
        $ret = $ret[$key];
    }
    
    var_dump($ret);
    

    见工作示例:
    https://3v4l.org/KgYOA

    还要记住,除非你真的必须这样做,否则不推荐使用eval。
    正如我上面所展示的,通常有一些方法可以用危险性较小的函数做同样的事情。

    推荐文章