Rumah > Artikel > pembangunan bahagian belakang > Mengenai pemprosesan rentetan heksadesimal dalam PHP7
Artikel ini adalah daripada ruangan tutorial PHP7 untuk memperkenalkan kepada anda masalah "0xFFFFFFFF" dan 0xFFFFFFFF dalam php7. Ia mempunyai nilai rujukan tertentu Rakan-rakan yang memerlukan boleh merujuk kepadanya.
Soalan khusus:
$t1 = 0x3FFFFFFF & (1 * (0xd5b42e11)); $t2 = 0x3FFFFFFF & (1 * ("0xd5b42e11")); var_dump($t1,$t2);
Nilai kod di atas dalam php7 (eksklusif) dan platform berikut ialah:
int(364129809) int(364129809)
Dan dalam php7 Nilainya ialah:
int(364129809) int(0)
Maaf, dalam persekitaran php7, bagaimana saya harus mengendalikan 0x.$str untuk menjadikannya sama dengan nilai di atas?
Penyelesaian:
Bermula dari PHP7, rentetan perenambelasan tidak lagi dianggap nombor
Jika anda perlu menyemak sama ada rentetan itu Mengandungi nombor perenambelasan, Kod yang disyorkan secara rasmi ialah
<?php $str = "0xffff"; $int = filter_var($str, FILTER_VALIDATE_INT, FILTER_FLAG_ALLOW_HEX); if (false === $int) { throw new Exception("Invalid integer!"); } var_dump($int); // int(65535) ?>
Untuk menangani masalah di atas, ia harus ditukar kepada
$t1 = 0x3FFFFFFF & (1 * (0xd5b42e11)); $t2 = 0x3FFFFFFF & (1 * (filter_var("0xd5b42e11", FILTER_VALIDATE_INT, FILTER_FLAG_ALLOW_HEX))); var_dump($t1,$t2);
Atas ialah kandungan terperinci Mengenai pemprosesan rentetan heksadesimal dalam PHP7. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!