在动态形成名称时如何获得常量值?

时间:2013-09-19 19:39:30

标签: php dynamic-variables

这个标题可能没什么用。我试图找出是否有办法获取已使用define(...)设置的变量的值,但使用第二个变量来构建已定义的var的名称。示例将更清晰:

define('I_LOVE_YOU', 'xoxox');
$n = 'LOVE';

// how to get 'xoxox', using $n?  This won't work:
$defd = 'I_'.$n.'_YOU';
echo $defd;  // obviously echos 'I_LOVE_YOU', not 'xoxox'

// this will, but is awful
eval('echo I_'.$n.'_YOU;');  // echos 'xoxox'

有没有其他方法可以做到这一点,而不是依靠eval?

1 个答案:

答案 0 :(得分:2)

请勿使用eval(),请使用constant()

define('I_LOVE_YOU', 'xoxox');
$n = 'LOVE';
echo constant('I_'.$n.'_YOU');