2013-07-02 80 views
0

如何檢查變量label_$value是否存在?isset使用帶字符串文字的混合變量

如:

<?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
+0

但是當你有什麼時,你沒有得到任何語法錯誤? – RMcLeod

+0

您的$ value變量不包含該值,它包含數組的鍵。 –

回答

3

你必須使用可變的變量。使用

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

完美的感謝,沒有意識到isset需要額外的語法 –

0

這不是你如何編譯變量名。嘗試isset(${"label_$value"});