可能重复:
What is the PHP ? : operator called and what does it do?
$id = isset($_GET['id']) ? intval($_GET['id']) : 0;
有人可以帮我理解上面的代码吗?我是相当新的PHP :) ?
和:
怎么办?
我很感激!
答案 0 :(得分:7)
这是一个三元运营商。这基本上说
if(isset($_GET['id']))
{
$id = intval($_GET['id']);
}
else
{
$id = 0;
}
答案 1 :(得分:2)
如果设置为$_GET['id']
,则$id
为intval($_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)
表达式
(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)
请参阅: http://www.lizjamieson.co.uk/2007/08/20/short-if-statement-in-php/ 和 http://php.net/operators.comparison
答案 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”,全部在一行中。您基本上是根据boolean
(true/false
)条件设置$ id变量的值。如果条件为真,则第一个结果用于设置$id
变量的值。否则,它使用第二个值。