簡體   English   中英

YAML解析返回對象不是數組使用PHP

[英]YAML parse return object not Array using PHP

我想使用YAML配置文件,為此,我使用composer下載symfony/yaml軟件包。

我創建我的測試YAML文件內容:

testing:
  test: 2

並解析它,我使用此代碼:

$yaml = Yaml::parse(file_get_contents('test.yml'));
var_dump($yaml->testng);

但是,出現此錯誤“試圖獲取非對象的屬性” testng”,因為解析返回數組,並且我想獲取一個對象。

我試圖添加(object)但它僅適用於第一個屬性。

有什么解決辦法嗎?

根據文檔,您應該只將Yaml::PARSE_OBJECT_FOR_MAP傳遞為Yaml::parse()的第二個參數:

$yaml = Yaml::parse(file_get_contents('test.yml'), Yaml::PARSE_OBJECT_FOR_MAP);

你可以使用這個功能

  public function toObject($array) {
        $obj = new stdClass();
        foreach ($array as $key => $val) {
            $obj->$key = is_array($val) ? $this->toObject($val) : $val;
        }
        return $obj;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM