【问题标题】:What does this PHP syntax mean? (question marks) [duplicate]这个 PHP 语法是什么意思? (问号)[重复]
【发布时间】:2014-01-21 18:34:56
【问题描述】:

这行 PHP 代码是什么意思?即问号位后跟真、冒号、假?

return(isset($_SESSION['id'])) ? true : false;

【问题讨论】:

  • if(a=b){c}else{d}的简写
  • 在这种情况下实际上是没用的。 return isset($_SESSION['id']); 做同样的事情。有人试图变得花哨,结果看起来像个白痴。

标签: php syntax ternary-operator


【解决方案1】:

这是一个三元运算符。

的缩写
if(isset($_SESSION['id'])){ 
   return true;
 }else{ return false;}

但是这是没用的,因为 isset() 已经返回 true 或 false

【讨论】:

    【解决方案2】:

    此语法适用于 PHP 中的三元运算符

    它像(Condition to evalute) ?( Return result if condition is true) : (return result if condition is false)一样运行

    在你的情况下 return(isset($_SESSION['id'])) ? true : false;

    如果设置了$_SESSION['id'],它将返回true,如果没有设置会话,它将返回false。

    ? 标记等效于 if 语句,而 : 等效于 else

    它是if else声明的简写形式

    链接:http://davidwalsh.name/php-shorthand-if-else-ternary-operators

    【讨论】:

      【解决方案3】:

      同:

      if isset($_SESSION['id']) {
           return true;
      } else {
           return false;
      }
      

      【讨论】:

        【解决方案4】:

        这是ternary operator

        这只是以下的简写:

        if (isset($_SESSION['id']))
          return true;
        else
          return false;
        

        【讨论】:

          【解决方案5】:

          ? boolean-condition [action] : [action]ternary conditional operator 的缩写:

          if ([condition]) { [action] } else { [action] }

          【讨论】:

          • 惊讶于 9k+ 用户会回答重复...:facepalm:
          • 相当失望的是用户会抱怨它
          • 来自拥有 9k+ 但仍回答重复问题的代表乞丐 -.-
          • (仅供参考 - 否决票不是我)
          • 我很有帮助,所以我回答。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-02-14
          • 1970-01-01
          • 1970-01-01
          • 2012-02-22
          • 2012-08-21
          • 2011-10-27
          • 1970-01-01
          相关资源
          最近更新 更多