duancashi1362 2014-07-23 05:07
浏览 43
已采纳

PHP ===和? 和:符号含义[重复]

This is an extract from a WebSocket client, what does the following code line mean/do ?

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

I read it this way (check below)

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

I don't understand the ($masked === true) as well as I dont understand the : $payLoadLength; (what is the : symbol for ?)

And what if Masked == False ? There is no result ?

</div>
  • 写回答

6条回答 默认 最新

  • doulun0651 2014-07-23 05:09
    关注

    That(?:) is called the ternary operator.

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

    Also === compares the internal object id of the objects. It is used for strict comparison. "===" means that they are identical.

    On a side note:

    Note: Please note that the ternary operator is an expression, and that it doesn't evaluate to a variable, but to the result of an expression. This is important to know if you want to return a variable by reference. The statement return $var == 42 ? $a : $b; in a return-by-reference function will therefore not work and a warning is issued in later PHP versions.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
  • ¥60 pb数据库修改与连接
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab