Maison  >  Questions et réponses  >  le corps du texte

关于php 位运算 移位的疑惑

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

PHP中文网PHP中文网2713 Il y a quelques jours426

répondre à tous(1)je répondrai

  • phpcn_u1582

    phpcn_u15822017-05-16 13:11:55

    Quand il s'agit de comparaison PHP, tapez conversion
    1, pack("C", 1)<<1, le résultat est int(0)
    2, pack("C", 1), le résultat est une chaîne (" ")

    En fait, c'est simplifié à la comparaison de 0 == ""

    PHP effectuera une conversion de type si les types ne sont pas égaux lors de la comparaison PHP 在比较的时候,如果类型不相等,会进行类型转换
    这里就会把 string("") 转换成 int 类型,也就是会变成 int(0),所以这里返回 true

    你要严格判断,可以使用 ===Ici, string("") sera converti en type int, ce qui signifie qu'il deviendra int(0), donc ici Return true

    Vous devez juger strictement, vous pouvez utiliser ===

    🎜var_dump( (pack("C" , 1)<<1) ===pack("C" , 1) ); Le résultat est faux🎜

    répondre
    0
  • Annulerrépondre