2011-12-17 102 views
0
public static function select($name, $options_array, $key_as_value=true, $selected="!NO!") 
    { 
     $html = "<select name='$name'>\n"; 

     foreach($options_array as $key => $val) 
     { 
      $option_value = ($key_as_value) ? $key : $val; 
      $option_display = $val; 
      $selected = ($selected != "!NO!" && $selected == $option_value) ? " SELECTED" : ""; 

      $option = "<option value='$option_value'$selected>$option_display</option>\n"; 
      $html .= $option; 
     } 

     $html .= "</select>\n"; 

     return $html; 
    } 

这是我的PHP代码,它会生成一个SELECT元素,如果您通过$选中它将会选择所需的选项。问题是,将默认值设为“!NO”看起来非常难看。但是我不能将它设置为FALSE,因为FALSE是synonim为0,并且如果有一个值为“0”的选项,它将无法按预期工作。php函数返回一个select元素

对此有何建议?

+1

如何空?您可以使用$作为参数和循环变量。你确定?如果其中一个val/option_value是“SELECTED”或空白,会发生什么情况? – 2011-12-17 04:05:55

+0

`FALSE`不是`0`的同义词。是的,`0 == FALSE`,但`0`是`int`,`FALSE`是`bool`。因此`0!== FALSE`。有关更多信息,请参阅@dkamins的答案。 – 2011-12-17 04:07:39

回答