【问题标题】:Undefined index (PHP)未定义索引 (PHP)
【发布时间】:2013-01-26 15:18:33
【问题描述】:

需要一些解释。 我制作的表格如下:

<form action="test4.php" method="post">
    <select name="code">
        <option value="A">A</option>
        <option value="B">B</option>
        <option value="C">C</option>
        <option value="D">D</option>
        <option value="E">E</option>
    </select>
    <input type="submit" value="Cus!">
</form>

然后为了将表单的值存储到 $code,我使用了我在论坛中找到的一行脚本

$code= empty ($_POST['code']) ? null : $_POST['code'];

实际上它有效,但没有解释。 谁能给我解释一下??

【问题讨论】:

  • 搜索“三元运算符”,这是编写 if/else 条件检查的一种简写方式。
  • 这和“未定义索引”有什么关系?
  • 如果你问什么是三元语句,那么它是重复的stackoverflow.com/questions/4681832/…。如果您询问未定义的索引,那就太本地化了。
  • 我什至不知道那是三元语句。我遇到了未识别的索引错误,搜索了一些解决方案然后我找到了那行。

标签: php indexing


【解决方案1】:

它是ternary。语法是var = (true) ? trueValue : falseValue; 和这个一样:

if  ( empty($_POST['code']) ) {
    $code =  null;
} else {
    $code = $_POST['code'];
}

【讨论】:

    【解决方案2】:

    这是一个三元运算符。

    三元运算符采用以下形式:

    condition ? value_if_true : value_if_false
    

    您的示例中的行等效于以下内容:

    if (empty($_POST["code"])) {
        $code = null;
    }
    else {
        $code = $_POST["code"];
    }
    

    【讨论】:

      【解决方案3】:

      empty() 如果变量是0falsenull、空字符串、未定义等,则返回true

      (condition ? result-if-condition-is-true : result-if-condition-is-false) 被称为 ternary operatorcan be found here in the PHP manual

      也可以这样写:

      if (empty($_POST["code"])) {
          $code = null;
      } else {
          $code = $_POST["code"];
      }
      

      【讨论】:

        【解决方案4】:

        Rad,它是一个三元表达式。它只是意味着检查 $_POST['code'] 的内容,如果为 true 则设置 null 否则将值设置为 $_POST['code'] 为 $code。

        如果您有答案,请在答案前打勾,这将减少未决问题的数量,并将从未决问题池中删除。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-03-24
          • 2018-01-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-07-29
          • 2015-01-20
          • 2014-12-19
          相关资源
          最近更新 更多