所以我编写了一个类,它可以解析 XML 文档并从中创建 SQL 查询,以根据设置更新或插入新行。
因为脚本必须处理任意数量的嵌套块,所以我将所有值放入的数组的路径是动态创建的,类似于以下示例:
$path = array('field1','field2');
$path = "['".implode("']['",$path)."']";
eval("\$array".$path."['value'] = 'test';");
基本上$path
包含一个数组,显示我们当前在数组中的深度,如果$path
包含例如值main_table
并且field
我想设置$array['main_table']['field']['value']
为'test'
如您所见,我目前正在使用 eval 来执行此操作,并且效果很好。我只是想知道是否有办法在不使用 eval 的情况下做到这一点。
类似的
$array{$path}['value'] = 'test';
东西,但实际上确实有效的东西。
有什么建议么?
编辑
我正在寻找替代方案的原因是因为我认为 eval 是不好的做法。
第二次编辑
将实际代码更改为虚拟代码,因为它引起了很多误解。