帮我理解这段代码

时间:2009-07-21 12:12:30

标签: php

  

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

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

有人可以帮我理解上面的代码吗?我是相当新的PHP :) ?:怎么办?

我很感激!

13 个答案:

答案 0 :(得分:7)

这是一个三元运营商。这基本上说

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

答案 1 :(得分:2)

这是ternary operator

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

答案 2 :(得分:1)

?:是内嵌if的一部分。

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

答案 3 :(得分:1)

x? y:z =如果x为真,则y else z

答案 4 :(得分:1)

那是conditional operator

  

表达式 (expr1) ? (expr2) : (expr3) 如果 expr2 评估为 TRUE ,并且 expr1 expr3 em>如果 expr1 评估为 FALSE

答案 5 :(得分:1)

这恰恰意味着:

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

答案 6 :(得分:0)

这是if的简短表示法。符号取自C。

可以重写:

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

答案 7 :(得分:0)

它被称为三元

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

答案 8 :(得分:0)

答案 9 :(得分:0)

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

答案 10 :(得分:0)

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

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

答案 11 :(得分:0)

这是一个三元运营商。基本上,它有一个

if (condition) {

} else {

}

在一行。

代码说

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

为了论证,使用(int)进行投射的速度要快得多。

答案 12 :(得分:0)

该陈述基本上意味着:

$id = 0;

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

?:运算符表示“如果条件然后结果,则为other_result”,全部在一行中。您基本上是根据booleantrue/false)条件设置$ id变量的值。如果条件为真,则第一个结果用于设置$id变量的值。否则,它使用第二个值。