2015-04-15 2 views
0

Это не только сложно объяснить, но сложно сделать:Присвоение значения свойству динамического объекта

Я пытаюсь получить доступ и заменить

$myObject->customField[0] = "some value"; 

, но если я

$str = "customField"; 
$myObject->$str[0] = "some value"; 

Это не работает, и если я

$str = "customField"; 
$obj = $myObject->$str; 
$obj[0]; 

Это тоже не сработает. Я могу изменить значения, если я не делаю этого динамически, но мне нужно пройти через много, так что динамика будет очень полезна.

EDIT (ответ)

Оказывается, фигурные скобки делает трюк. т.е.

$str = "customField"; 
$myObject->{$str}[0] = "some value"; 
+0

Что значит, что это не работает? как вы это реализуете? он перекликается [отлично] (http://codepad.viper-7.com/C6yuwu) – Ghost

ответ

0

Почему вы хотите иметь динамические имена свойств? Лучший ответ: не делайте этого так. Вместо этого используйте вместо этого ассоциативный массив:

$myObject->customFields = array(); 

$myObject->customFields[$str] = "some value"; 
+0

Я решил его с фигурными фигурными скобками и поставил решение внутри моего вопроса. – Jacksonkr

Смежные вопросы