Вместо того, чтобы использовать
$object->my_property
Я хочу сделать что-то подобное
$object->"my_".$variable
Используйте фигурные скобки следующим образом:
$object->{'my_' . $variable}
Как насчет этого:
$object->{"my_$variable"};
Я полагаю, что этот раздел документации PHP может быть полезен. Короче говоря, можно писать любое произвольное выражение в фигурных скобках; его результат (строка) становится именем свойства, которое необходимо устранить. Например:
$x = new StdClass(); $x->s1 = 'def'; echo $x->{'s' . print("abc\n")}; // prints // abc // def
… но, как правило, гораздо читабельнее хранить результат этого выражения во временную переменную (которой, btw, может быть дано значимое имя). Как это:
$x = new StdClass(); $x->s1 = 'def'; $someWeirdPropertyName = 's' . print("abc\n"); // becomes 's1'. echo $x->$someWeirdPropertyName;
Как вы видите, этот подход делает ненужными фигурные скобки и дает читателю хотя бы некоторое описание того, что составляет имя свойства. )
PS print
используется только для иллюстрации потенциальной сложности выражения имени переменной; в то время как этот тип кода обычно используется в сертификационных тестах, это большой «нет-нет» для использования таких вещей в производстве. )