【发布时间】:2012-01-22 11:16:50
【问题描述】:
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 元素,如果你传递 $selected 它将选择所需的选项。问题是,将默认值设置为“!NO”看起来很丑陋。但我也不能将其设为 FALSE,因为 FALSE 是 0 的同义词,如果有一个值为“0”的选项,它将无法按预期工作。
对此有何建议?
【问题讨论】:
-
null 怎么样?您使用 $selected 作为参数和循环变量。你确定吗?如果 val / option_value 之一是“SELECTED”或空白会发生什么?
-
FALSE不是0的同义词。是的,0 == FALSE,但0是int,FALSE是bool。因此0 !== FALSE。有关更多信息,请参阅@dkamins 的答案。 -
我尝试复制你的代码来运行,你显示的是val还是key?
标签: php html function parameters