这个代码的含义只是一个简单的问题:
$_SESSION['gold'] = (isset($_SESSION['gold']) ? $_SESSION['gold'] + $earn_gold : $earn_gold);
我很困惑“?”意思是“和”符号。是比较运算符吗?
希望你能提供帮助。谢谢!
答案 0 :(得分:2)
它被称为ternary operator。
if( $valid ) {
$x = 'yes';
} else {
$x = 'no';
}
如果您认为上述内容太长,可以使用,
$x = $valid ? 'yes' : 'no';
答案 1 :(得分:1)
这是一个三元运算符,基本上是内联的if else。它根据条件返回一个值。格式为:
$variable = (CONDITION) ? TRUE OUTPUT : FALSE OUTPUT
基本上说的是'如果CONDITION
== True,则输出TRUE OUTPUT
,否则输出FALSE OUTPUT
。
这里有一些很好的例子:Ternary Examples
答案 2 :(得分:0)
这是if的简短形式。
伪代码:
if(value1 == true)
{
aaa
}
else
{
bbb
}
与
相同value1 ? aaa : bbb
因此,使用您的代码,它与
相同if(isset($_SESSION['gold'])
{
$_SESSION['gold'] = $_SESSION['gold'] + $earn_gold;
}
else
{
$_SESSION['gold'] = $earn_gold;
}
答案 3 :(得分:0)
在php'?'将被称为三元运算符。
示例:强>
通过这种方式,您可以使用三元运算符检查您的情况。'?',':'。
$_SESSION['gold'] = (isset($_SESSION['gold']) ? $_SESSION['gold'] + $earn_gold : $earn
在这种情况下,对于变量$ _SESSION [' gold'],
isset($ _ SESSION [' gold'])已被检查,这将返回布尔值,表示1 OR 0.
如果是1那么条件是'?'将执行其他':'这个条件将执行,结果将设置为变量$ _SESSION [' gold']
答案 4 :(得分:0)
它在php中称为三元运算符。它是以下
的简写if(isset($_SEESION['gold'])){
$_SEESION['gold'] += $earn_gold;// increment $_SESSION['gold'] value by $earn_gold
}else{
$_SEESION['gold'] = $earn_gold;// set $_SESSION['gold'] value for the first time, set it to $earn_gold
}
详细了解php here
中的三元运算符答案 5 :(得分:0)
?是oneline if语句的一部分,就像:
/* most basic usage */
$var = 5;
$var_is_greater_than_two = ($var > 2 ? true : false); // returns true
所以基本上 - >
if ($var > 2)
{
$var_is_greater_than_two = true;
}
else
{
$var_is_greater_than_two = false;
}
为您的例子:
if (isset($_SESSION['gold']))
{
$_SESSION['gold'] = $_SESSION['gold'] + $earn_gold
// OR $_SESSION['gold'] += $earn_gold;
}
else
{
$_SESSION['gold'] += $earn_gold;
}
答案 6 :(得分:0)
此(? :)
称为三元运算符您可以将其用作if/else
条件的简写
/* Example*/
$var = 5;
$var_is_greater_than_two = ($var > 2 ? true : false); // returns true
使用这种逻辑有一些宝贵的好处: