我想这样做:
<?php
define('X', 'attribute_name');
// object $thing is created with member attribute_name
echo $thing->X;
?>
尝试$thing->X
,PHP 将 X 视为 $thing 的属性,并忽略了事实(正确地)它是一个定义()的标记。考虑到这一点,我曾期望$thing->{X}
工作,但没有骰子。
我想出的唯一解决方案是使用中间人变量,如下所示:
$n = X;
echo $thing->$n;
但是这个额外的步骤似乎相当不符合 PHP 风格。关于更优雅的解决方案的任何建议?