php добавление строки в объект stdClass - PullRequest
3 голосов
/ 27 ноября 2011

Я извлекаю записи из базы данных, и у меня есть поле с именем content_fr, _fr динамически создается на основе языка сайта.

Получение всех записей из таблицы дает мне, конечно,content_fr поле.Что мне нужно сделать, так это вручную назначить суффикс в этом case _fr, если я пытаюсь объединить $row->content.'_fr', я получаю ошибку Notice: Undefined property: stdClass::$content, что имеет смысл, поскольку $ content не существует, а $content_fr существует.Используя стандартные массивы, я смог сделать это, как $row['content_fr'], и работал нормально, но теперь, используя stdClass, я получаю сообщение об ошибке.

Как я могу преобразовать $row->content.'_fr' в одну строку, чтобы php виделэто как $row->content_fr?

Ответы [ 3 ]

12 голосов
/ 27 ноября 2011

Попробуй так:

$row -> {'content_' . $language}; // assuming $language = 'fr'
1 голос
/ 27 ноября 2011

Вы можете сделать это следующим образом:

$row->{'content_fr'};

РЕДАКТИРОВАТЬ: Кстати, этот вопрос задавался здесь много раз. Смотрите предыдущие потоки, такие как этот: Доступ к свойствам объекта, как если бы объекты были массивами .

0 голосов
/ 27 ноября 2011

Попробуйте что-то вроде этого:

$lang = 'fr';
$property = 'content_' . $lang; // content_fr
$row->$property = 'something';
...