PHP-通过字符串变量访问嵌套数组值

时间:2020-03-08 19:07:59

标签: php arrays json oop

我有一个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()部分是否确实可以接受还是应该受到指责。 我是否应该避免这种方式并明确地做到这一点?如果是,为什么?

教授会读它,因此任何建议都会受到赞赏。

0 个答案:

没有答案