Maison > développement back-end > PHP7 > Concernant le traitement des chaînes hexadécimales en PHP7

Concernant le traitement des chaînes hexadécimales en PHP7

藏色散人
Libérer: 2023-02-18 09:02:01
avant
1894 Les gens l'ont consulté

Cet article est écrit par la rubrique PHP7tutorial pour vous présenter les problèmes de "0xFFFFFFFF" et 0xFFFFFFFF en php7. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

Question spécifique :

$t1 = 0x3FFFFFFF & (1 * (0xd5b42e11));
$t2 = 0x3FFFFFFF & (1 * ("0xd5b42e11"));
var_dump($t1,$t2);
Copier après la connexion

La valeur du code ci-dessus en php7 (non inclus) et les plateformes suivantes est :

int(364129809)
int(364129809)
Copier après la connexion

Et la valeur en php7 est :

int(364129809)
int(0)
Copier après la connexion

Comment gérer 0x dans l'environnement php7 . Que diriez-vous de rendre $str identique à la valeur ci-dessus ?

Solution :

À partir de PHP7, les chaînes contenant des chiffres hexadécimaux ne sont plus considérées comme des nombres

Si vous devez détecter si une chaîne contient des chiffres hexadécimaux, le code officiellement recommandé est

<?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)
?>
Copier après la connexion

pour La question ci-dessus doit être modifiée à

$t1 = 0x3FFFFFFF & (1 * (0xd5b42e11));
$t2 = 0x3FFFFFFF & (1 * (filter_var("0xd5b42e11", FILTER_VALIDATE_INT, FILTER_FLAG_ALLOW_HEX)));
var_dump($t1,$t2);
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:segmentfault.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal