【问题标题】:php function that returns a select element返回选择元素的php函数
【发布时间】: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,但0intFALSEbool。因此0 !== FALSE。有关更多信息,请参阅@dkamins 的答案。
  • 我尝试复制你的代码来运行,你显示的是val还是key?

标签: php html function parameters


【解决方案1】:

只要使用三等号运算符===,就可以使用FALSE。这里有一些很好的链接来解释这一点:

【讨论】:

  • OP 的决定,不是你的,而是null 可能是一个更合适的值。
猜你喜欢
  • 2013-10-21
  • 1970-01-01
  • 2023-04-10
  • 2012-02-11
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 2018-01-06
  • 2022-01-01
相关资源
最近更新 更多