Вопрос по php – PHP переменная объекта имя переменных?

19

У меня есть цикл, который идет от 1 до 10 и печатает значения в

$entity_object->field_question_1 через 10, так что ...

$entity_object->field_question_1, $entity_object->field_question_2, так далее

И я хочу напечатать это в этом цикле, как я могу получить переменную? Я пытался сделать

$var = "entity_object->field_question_".$i;
print $$var;

Но это не сработало ...

Как я могу получить эти значения?

Ваш Ответ

5   ответов
38

Это должно работать:

$var="field_question_$i";
$entity_object->$var;
0

Или вы можете типизировать между массивами и объектами.

Массивы просты в том смысле, что они организованы и легко доступны. Объекты довольно разные, но от многих других.

Установите ваши объекты так:

$entity_object["field_question_{$i}"] = ''//value;

Затем они могут быть типизированы на объект:

$entity_object = (object)$entity_object;

Затем вы можете ссылаться на них как:

$entity_object->field_question_1 ...;
1

как:

$variable->$node[$i] = true;

Это прекрасно работало в PHP 5.4, но в PHP 7 вызывал сбой всего сайта. Поэтому мы заменим его на:

$variable->{$node[$i]} = true;

Решить проблему

8

Прежде всего, массивы больше подходят для того, что вы хотите сделать.

Ответ на ваш вопрос:print $entity_object->{"field_question_$i"};

19

На самом деле вам нужно вывести переменную за пределы строки, чтобы эти решения работали: $var="field_question_".$i;

$entity_object->$var;

Или же

$entity_object->{"field_question_".$i}

Похожие вопросы