Как вставить элемент в массив, имя которого содержится в переменной?
Я делаю общий класс PHP, который автоматически загружает значения в объект из базы данных
Чтобы установить свойства, я использую это:
$object->$propertyName = $valueFromDB;
где значение propertyName происходит от имени поля mysql..
Теперь я хочу вставить что-то в массив аналогичным образом:
Это работает..
$object->$arryName = array();
Но это не..
$object->$arryName[] = "test";
Как я могу обойти это?
1 ответ
$object->{$arryName}[] = "test"
Фигурные скобки изменяют порядок операций и заставляют PHP оценивать имя переменной перед жесткими скобками.
Если вы хотите создать ассоциативный массив, это немного усложняется:
$object->{$arryName}[$keyname] = "test"
В этом случае вы можете поместить фигурные скобки вокруг $keyname, но это совершенно необязательно.
Заметим, что переменные переменные обычно, но не всегда, являются признаком чего-то странного. Они также причиняют боль тем, кто идет за вами, кто должен отлаживать, реорганизовывать, делать какие-либо расчистки и т. Д. Если вы должны их использовать, хорошо, но убедитесь, что вы рассмотрели последствия.