2011-12-17 137 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

回答