【问题标题】:Help me understand this code [duplicate]帮助我理解这段代码[重复]
【发布时间】:2010-11-12 15:05:29
【问题描述】:

可能重复:
What is the PHP ? : operator called and what does it do?

$id = isset($_GET['id']) ? intval($_GET['id']) : 0;

谁能帮我理解上面的代码?我对 php 很陌生 :) ?: 怎么样?

我会很感激的!

【问题讨论】:

标签: php


【解决方案1】:

这是一个三元运算符。这基本上是说

if(isset($_GET['id']))
{
   $id = intval($_GET['id']);
}
else
{
   $id = 0;
}

【讨论】:

    【解决方案2】:

    那是ternary operator

    如果设置了$_GET['id'],则$idintval($_GET['id']),否则$id 为0。

    【讨论】:

    • 它是 a 三元运算符,而不是“the”。
    • 正如 Jon Skeet 所说:'这不是 the 三元运算符,而是 a 三元运算符。'
    • @Gumbo - 从我嘴里偷了话!
    • 我认为这应该会更好。
    【解决方案3】:

    ?: 是内联 if 的一部分。

    基本上,如果isset($_GET['id']) 为真,则使用intval($_GET['id'])。否则,$id 得到 0。

    【讨论】:

    • if 是一个语句,但 ?: 是一个运算符。那是有区别的!
    【解决方案4】:

    x ? y : z = 如果 x 为真则 y 否则为 z

    【讨论】:

      【解决方案5】:

      那是conditional operator

      表达式 (expr1) ? (expr2) : (expr3) 计算结果为 expr2 如果 expr1 计算结果为 TRUE,并且 expr3 如果 expr1 计算结果为 错误

      【讨论】:

        【解决方案6】:

        就是这个意思:

        $id = 0;
        if(isset($_GET['id'])) {
            $id = intval($_GET['id'];
        }
        

        【讨论】:

          【解决方案7】:

          这是if 的简写。符号取自 C。

          可以重写:

          if (isset($_GET['id']) ) {
               $id = intval($_GET['id']);
          } else {
               $id = 0;
          }
          

          【讨论】:

            【解决方案8】:

            它被称为三元组

            如果 isset($_GET['id']) 返回 true,它会使用 intval($_GET['id']) 填充 $id,否则它将使用 0 填充它

            【讨论】:

              【解决方案9】:

              如果 $_GET['id'] 存在,则设置 $id = $_GET['id'],如果不存在,则设置 $id = 0,则使用三进制。 http://uk3.php.net/ternary

              【讨论】:

                【解决方案10】:

                这是一个三元运算符。基本上,它有一个

                if (condition) {
                
                } else {
                
                }
                

                一行。

                代码说

                如果已设置 GET var id,则将 $id var 设置为等于 GET 变量的整数。

                为了争论,使用(int) 进行转换已被证明要快得多。

                【讨论】:

                  【解决方案11】:

                  这句话的本质是这样的:

                  $id = 0;
                  
                  if (isset($_GET['id']))
                  {
                      $id = intval($_GET['id']);
                  }
                  else
                  {
                      $id = 0;
                  }
                  

                  ?: 操作符的意思是“if condition then result else other_result”,全部在一行中。您基本上是根据 boolean (true/false) 条件设置 $id 变量的值。如果条件为真,则第一个结果用于设置$id 变量的值。否则,它使用第二个值。

                  【讨论】:

                    【解决方案12】:

                    这只是 if 语句 (ternary operator) 的简写,与以下内容相同:

                    if (isset($_GET['id']))
                    {
                        $id = intval($_GET['id']);
                    }
                    else
                    {
                        $id = 0;
                    }
                    

                    【讨论】:

                      【解决方案13】:
                      猜你喜欢
                      • 2011-02-21
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2013-06-15
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      相关资源
                      最近更新 更多