Keraguan tentang operasi dan anjakan bit php
PHP中文网
PHP中文网 2017-05-16 13:09:55
0
1
446

var_dump( (pack("C" , 1)<<1) ==pack("C" , 1) );
Mengapa ia benar

PHP中文网
PHP中文网

认证高级PHP讲师

membalas semua(1)
phpcn_u1582

Apabila bercakap tentang perbandingan PHP, taip penukaran
1, pack("C", 1)<<1, hasilnya adalah int(0)
2, pack("C", 1), hasilnya ialah rentetan (" ")

Malah, ia dipermudahkan kepada perbandingan 0 == ""

PHP akan melakukan penukaran jenis jika jenis tidak sama semasa perbandingan PHP 在比较的时候,如果类型不相等,会进行类型转换
这里就会把 string("") 转换成 int 类型,也就是会变成 int(0),所以这里返回 true

你要严格判断,可以使用 ===Di sini rentetan("") akan ditukar kepada jenis int, iaitu, ia akan menjadi int(0), jadi di sini Kembalikan benar

Anda perlu menilai dengan tegas, anda boleh menggunakan ===

🎜var_dump( (pack("C" , 1)<<1) ===pack("C" , 1) );
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan