我有一个JSON数据,我想访问它以便使用其包含的数据初始化一个类。
我将json值的索引放置在数组中,以便可以通过eval()函数在for循环中设置和访问变量,如以下代码所示:
class TripData {
public $currency;
public $date;
public $flights;
function __construct($jsonTripText) {
$tripDataAssoc = json_decode($jsonTripText, true);
$propertiesIndex = ["['currency']",
"['trips'][0]['dates'][0]['dateOut']",
"['trips'][0]['dates'][0]['flights']"];
$propertiesNames = ["currency", "date", "flights"];
$count = count($propertiesIndex);
for ($i=0; $i<$count; $i++) {
echo "\$this->$propertiesNames[$i] = \$tripDataAssoc" . "$propertiesIndex[$i];<br>";
eval("\$this->$propertiesNames[$i] = \$tripDataAssoc" . "$propertiesIndex[$i];");
echo "<br>";
}
var_dump($this->currency); echo "<br>";
var_dump($this->date); echo "<br>";
var_dump($this->flights); echo "<br>";
}
}
这确实有效,但是我想知道eval()部分是否确实可以接受还是应该受到指责。 我是否应该避免这种方式并明确地做到这一点?如果是,为什么?
教授会读它,因此任何建议都会受到赞赏。