什么标记表示在PHP中

时间:2015-07-07 07:12:25

标签: php

这个代码的含义只是一个简单的问题:

$_SESSION['gold'] = (isset($_SESSION['gold']) ? $_SESSION['gold'] + $earn_gold : $earn_gold);

我很困惑“?”意思是“和”符号。是比较运算符吗?

希望你能提供帮助。谢谢!

7 个答案:

答案 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

使用这种逻辑有一些宝贵的好处:

  • 使编码简单,如果/其他逻辑更快
  • 您可以将if / else逻辑与输出内联而不是中断 if / else语句的输出构建
  • 缩短代码
  • 使维护代码更快捷,更轻松
  • 工作保障?