Я бы хотел сделать это:
<?php
define('X', 'attribute_name');
// object $thing is created with member attribute_name
echo $thing->X;
?>
При попытке $thing->X
PHP принимает X за свойство $ thing и игнорирует тот факт (справедливо), что это токен define (). Имея это в виду, я ожидал, что $thing->{X}
будет работать, но без кубиков.
Единственное решение, которое я придумал, это использовать переменную «человек посередине», вот так:
$n = X;
echo $thing->$n;
Но этот дополнительный шаг выглядит совершенно не по-PHP. Какой-нибудь совет относительно более изящного решения?