我在变量$path
中保存了以下文本字符串:
$path = "['parent']['son']";
我需要使用上面的字符串来达到以下变量的内容:
$_SESSION['parent']['son']
我想我可以使用eval
函数,但是我做不到。我该如何实现?
答案 0 :(得分:1)
无需评估。
展开字符串并删除不需要的字符串,然后循环数组并在会话数组中进行挖掘。
$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。
如上所示,通常可以使用较少危险的功能来完成相同的事情。