#php #arrays #class #properties
#php #массивы #класс #свойства
Вопрос:
У меня есть класс со свойством, которое является массивом:
class NewObject {
public $Props = array();
}
$obj = new NewObject();
$obj->Props[0] = 'a';
$obj->Props[1] = 'b';
Теперь я хочу изменить значения реквизитов не напрямую, а с помощью переменной ‘propertyname’:
Это работает для свойств с одной строкой, но не для массивов, потому что ключ N интерпретируется как N-я буква СТРОКИ ‘Props’ вместо N-го значения в массиве!
$propertyname = 'Props';
$obj->$propertyname[0] ='c'; //doesnt work as expected, it tries to set $obj->P now, it seems
$obj->$propertyname[1] ='d';
Есть какой-нибудь способ решить это?
Ответ №1:
$obj->{$propertyname}[0] ='c';
Комментарии:
1. Спасибо … Я знал о почести, но только в строках с двойными кавычками, в которых вы хотите использовать переменную… никогда раньше такого не видел…