如何在 PHP 中使用变量访问对象属性


how to reach object property with variable in php

我有

foreach(["ge","en","ru"] as $lang)
        {
            Tour_trans::create([
                "tour_id" => $tour->id,
                "lang_id" => Langs::where('lang', $lang)->first()->id,
                "title" => $data["" . $lang . "_title"],
                "location" => $data["" . $lang . "_location"],
                "dept_time" => $data["" . $lang . "_dept_time"],
                "depture_time" => $data["" . $lang . "_dept_time"],
                "return_time" => $data["" . $lang . "_return_time"],
                "body" => $data["" . $lang . "_body"],
                "days" => $data["all_days"]->$lang
            ]);
        }

$data是一个 JSON 对象。 除了最后一行外,一切正常

"days" => $data["all_days"]->$lang

我得到错误 类 stdClass 的对象无法转换为字符串。在 $data["all_days] 中,有 3 个数组对象 - ge、en、ru。所以我想循环访问此属性

这取决于json_decode第二个参数的选择:

mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )

如果$assoc设置为 true,则返回一个关联数组。如果它设置为 false,那么你得到一个对象。