这是WebSocket客户端的摘录,以下代码行是什么意思/做什么?
$frameHead[1] = ($masked === true) ? $payloadLength + 128 : $payloadLength;
我这样读(见下文)
If Masked == True Then $frameHeadHead[1] = $payloadLength + 128 / $payloadLength
我不理解($masked === true)
以及我不理解: $payLoadLength;
(:
符号是什么?)
如果Masked == False
怎么办?没有结果?
答案 0 :(得分:7)
那个(?:)被称为 ternary operator 。
(condition) ? /* if condition is true then return this value */
: /* if condition is false then return this value */ ;
=== 也会比较对象的内部对象ID。它用于严格比较。 "==="
表示它们是相同的。
旁注:
注意:请注意,三元运算符是一个表达式 它不会评估变量,而是评估表达式的结果。 知道是否要返回变量非常重要 参考。声明返回$ var == 42? $ a:$ b;在一个 因此,按引用返回功能将不起作用并发出警告 在以后的PHP版本中发布。
答案 1 :(得分:5)
$frameHead[1] = ($masked === true) ? $payloadLength + 128 : $payloadLength;
it conditional statement like if and else
if($masked === true){ $payloadLength + 128 } else {$payloadLength;}
答案 2 :(得分:3)
首先:===
检查值和类型是否相等(因此当false==0
为真时,false===0
不是'{t}}。相反的是!==
。
var=bool ? value1 : value2
语句与:
if(bool){
var=value1;
}else{
var=value2;
}
所以你的行转换为:
if($masked===true){
$frameHead[1] = $payloadLength + 128;
}else{
$frameHead[1] = $payloadLength;
}
答案 3 :(得分:2)
If Masked == True Then $frameHeadHead[1] = $payloadLength + 128
Else $frameHeadHead[1] = $payloadLength
答案 4 :(得分:2)
$frameHead[1] = ($masked === true) ? $payloadLength + 128 : $payloadLength;
意思是:
If Masked === True
Then $frameHeadHead[1] = $payloadLength + 128
Else
Then $frameHeadHead[1] = $payloadLength
答案 5 :(得分:2)
检查以下内容:
==
用于匹配值。
===
用于将值与数据类型匹配。
更确切地说,让我们检查一个例子 -
99 == "99" // true
99 === "99" // false
这称为三元运算符。这意味着
$frameHead[1] = ($masked === true) ? $payloadLength + 128 : $payloadLength;
if ($masked === true) {
$frameHead[1] = $payloadLength + 128;
} else {
$frameHead[1] = $payloadLength;
}