使用带有字符串文字的混合变量

时间:2013-07-02 14:14:59

标签: php

如何检查变量label_$value是否存在?

E.g:

<?php foreach($status_values as $value => $label){ ?>
    <input type="radio" name="status" value="<?php echo $value; ?>" <?php if($status == $value){ echo ' checked="checked"'; }?> />
    <?php echo (isset("label_{$value}")) ? "label_{$value}" : $label; ?>
<?php } ?>

这会出错:解析错误:语法错误,isset的意外'“'

但是当我有:

时,我没有得到任何语法错误
<?php echo ("label_{$value}") ? "label_{$value}" : $label; ?>

所以我想:

  1. 检查变量是否存在:$label_foo
  2. 使用默认的$label

2 个答案:

答案 0 :(得分:3)

你必须使用变量变量。使用

<?php
$label_test = "Hello";
$value = "test";
echo (isset(${"label_{$value}"})) ? "label_{$value}" : $label;
?>

答案 1 :(得分:0)

这不是你编译变量名的方式。试试isset(${"label_$value"});