【问题标题】:PHP === and ? and : symbol meaning [duplicate]PHP === 和 ?和:符号含义[重复]
【发布时间】:2014-09-14 03:41:06
【问题描述】:

这是一个WebSocket客户端的摘录,下面的代码行是什么意思/做什么?

$frameHead[1] = ($masked === true) ? $payloadLength + 128 : $payloadLength;

我是这样读的(查看下方)

If Masked == True Then $frameHeadHead[1] = $payloadLength + 128 / $payloadLength

我不理解($masked === true) 以及我不理解: $payLoadLength;: 的符号是什么?)

如果Masked == False 呢?没有结果?

【问题讨论】:

  • 提问前请正确搜索。

标签: php


【解决方案1】:
If Masked == True Then $frameHeadHead[1] = $payloadLength + 128 
Else $frameHeadHead[1] = $payloadLength

【讨论】:

    【解决方案2】:

    那个(?:)被称为ternary operator

    (condition) ? /* if condition is true then return this value */ 
                : /* if condition is false then return this value */ ;
    

    另外===比较对象的内部对象ID。它用于严格比较。 "===" 表示它们是相同的。

    附带说明:

    注意:请注意三元运算符是一个表达式,并且 它的计算结果不是变量,而是表达式的结果。 了解是否要通过以下方式返回变量很重要 参考。语句 return $var == 42 ? $a : $b;在一个 因此,按引用返回函数将不起作用,并发出警告 在以后的 PHP 版本中发布。

    【讨论】:

    • +1 用于在所有其他答案都没有提及的情况下实际给出名称。
    • 关于=== 是严格比较,也检查数据类型
    【解决方案3】:

    它的ternary operator

    $frameHead[1] = ($masked === true) ? $payloadLength + 128 : $payloadLength;
    

    意思是:

    If Masked === True 
    
    Then $frameHeadHead[1] = $payloadLength + 128 
    
    Else
    
    Then $frameHeadHead[1] = $payloadLength
    

    【讨论】:

      【解决方案4】:

      首先:=== 检查值和类型是否相等(所以当false==0 为真时,false===0 不是)。反过来是!==

      var=bool ? value1 : value2 语句等同于:

      if(bool){
        var=value1;
      }else{
        var=value2;
      }
      

      所以你的行翻译成:

      if($masked===true){
        $frameHead[1] = $payloadLength + 128;
      }else{
        $frameHead[1] = $payloadLength;
      }
      

      【讨论】:

        【解决方案5】:
        $frameHead[1] = ($masked === true) ? $payloadLength + 128 : $payloadLength;
        
        it  conditional statement like if and else  
        
         if($masked === true){ $payloadLength + 128 } else {$payloadLength;}
        

        【讨论】:

        • 为什么投反对票原因??????????????
        • 格式不佳,仅此而已。
        • 好的,谢谢。但请选择逻辑,因为您的问题解决了,然后我们的目的解决了老板。
        【解决方案6】:

        检查如下:

        为什么我们使用 === 而不是 == ?

        == 用于匹配值。 === 用于将值与数据类型匹配。

        更准确地说,让我们来看一个例子 -

        99 == "99" // true
        99 === "99" // false
        

        (?:) 意思是

        这称为三元运算符。这意味着

        $frameHead[1] = ($masked === true) ? $payloadLength + 128 : $payloadLength;
        
        if ($masked === true) {
            $frameHead[1] = $payloadLength + 128;
        } else {
           $frameHead[1] = $payloadLength;
        }
        

        【讨论】:

        • 为什么你们不投票正确答案???
        • 不要鼓励不努力的问题。
        • @Manwal,是的,对 :) 不明白别人的问题,他们为什么这样做。
        • @SankalpSrivastava,然后否决问题,而不是答案:)。
        猜你喜欢
        • 2014-07-08
        • 1970-01-01
        • 2011-05-27
        • 2013-03-11
        • 2013-07-01
        • 1970-01-01
        • 2012-03-08
        • 2014-09-16
        • 2016-07-20
        相关资源
        最近更新 更多