ホームページ  >  に質問  >  本文

关于php 位运算 移位的疑惑

var_dump( (pack("C" , 1)<<1) ==pack("C" , 1) );
为什么是true呢

PHP中文网PHP中文网2713日前430

全員に返信(1)返信します

  • phpcn_u1582

    phpcn_u15822017-05-16 13:11:55

    PHPの比較に関しては、型変換
    1、pack("C", 1)<<1、結果はint(0)です
    2、pack("C", 1)、結果はstringです(" ")

    実際には、0 == "" の比較に簡略化されます

    PHP 在比较的时候,如果类型不相等,会进行类型转换
    ここではstring("")をint型に変換、つまりint(0)となるのでtrueを返します

    厳密に判断する必要があります、使用できます===

    var_dump( (pack("C" , 1)<<1) ===pack("C" , 1) ); 結果は false です

    返事
    0
  • キャンセル返事