Как вставить элемент в массив, имя которого содержится в переменной?

Я делаю общий класс PHP, который автоматически загружает значения в объект из базы данных

Чтобы установить свойства, я использую это:

$object->$propertyName = $valueFromDB; где значение propertyName происходит от имени поля mysql..

Теперь я хочу вставить что-то в массив аналогичным образом:

Это работает..

$object->$arryName = array();

Но это не..

$object->$arryName[] = "test";

Как я могу обойти это?

1 ответ

Решение
$object->{$arryName}[] = "test"

Фигурные скобки изменяют порядок операций и заставляют PHP оценивать имя переменной перед жесткими скобками.

Если вы хотите создать ассоциативный массив, это немного усложняется:

$object->{$arryName}[$keyname] = "test"

В этом случае вы можете поместить фигурные скобки вокруг $keyname, но это совершенно необязательно.

Заметим, что переменные переменные обычно, но не всегда, являются признаком чего-то странного. Они также причиняют боль тем, кто идет за вами, кто должен отлаживать, реорганизовывать, делать какие-либо расчистки и т. Д. Если вы должны их использовать, хорошо, но убедитесь, что вы рассмотрели последствия.

Другие вопросы по тегам