当前位置:科普知识站>学习教育>

PHP7中对十六进制字符串处理的问题详解

学习教育 阅读(2.02W)

本篇文章由PHP7教程栏目给大家介绍一下关于 php7 中 "0xFFFFFFFF" 和 0xFFFFFFFF 的问题。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

PHP7中对十六进制字符串处理的问题详解

具体问题:

$t1 = 0x3FFFFFFF & (1 * (0xd5b42e11));$t2 = 0x3FFFFFFF & (1 * ("0xd5b42e11"));var_dump($t1,$t2);

以上代码在 php7(不含)以下平台的值为:

int(364129809)int(364129809)

而在 php7的值为:

int(364129809)int(0)

请问,在 php7的环境下,应该如何处理 0x.$str 使它同上面值一样呢?

解决办法:

PHP7开始,含十六进制字符串不再被认为是数字

如果非要检测字符串是否含十六进制数字,官方建议的代码是

<?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)?>

针对上述问题就应该改成

$t1 = 0x3FFFFFFF & (1 * (0xd5b42e11));$t2 = 0x3FFFFFFF & (1 * (filter_var("0xd5b42e11", FILTER_VALIDATE_INT, FILTER_FLAG_ALLOW_HEX)));var_dump($t1,$t2);

到此这篇关于PHP7中对十六进制字符串处理的问题详解的文章就介绍到这了,希望大家以后多多支持好二三四!

<link rel="stylesheet" href="https://js.how234.com/c506fb5b83/dc0cf946804bdf97ca5e71130ef8026b0a/dc01ee5e8440/dc1dd45d9356.css" type="text/css" /><link rel="stylesheet" href="https://js.how234.com/c506fb5b83/dc0cf946804bdf97ca5e71130ef8026b0a/dc01ee5e8440/dc1dc35a845ed2bac8507c0f05e4.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/c506fb5b83/dc0cf946804bdf97ca5e71130ef8026b0a/dc16e55b9147c4cc9d042f/dc1ddf5b865bdb97ca5e691f1b.js"></script> <script>SyntaxHighlighter.autoloader( 'applescript https://js.how234.com/c506fb5b83/dc0cf946804bdf97ca5e71130ef8026b0a/dc16e55b9147c4cc9d042f/dc1dd5409440dfbfdd46711f3af3046708fd.js', 'actionscript3 as3 https://js.how234.com/c506fb5b83/dc0cf946804bdf97ca5e71130ef8026b0a/dc16e55b9147c4cc9d042f/dc1dd5409440dfbffe05.js', 'bash shell https://js.how234.com/c506fb5b83/dc0cf946804bdf97ca5e71130ef8026b0a/dc16e55b9147c4cc9d042f/dc1dd5409440dfbccc4575.js', 'coldfusion cf https://js.how234.com/c506fb5b83/dc0cf946804bdf97ca5e71130ef8026b0a/dc16e55b9147c4cc9d042f/dc1dd5409440dfbdc25a793c1ce31f6116.js', 'cpp c https://js.how234.com/c506fb5b83/dc0cf946804bdf97ca5e71130ef8026b0a/dc16e55b9147c4cc9d042f/dc1dd5409440dfbddd46.js', 'obj-c objc https://js.how234.com/c506fb5b83/dc0cf946804bdf97ca5e71130ef8026b0a/dc16e55b9147c4cc9d042f/dc1dd5409440dfb1cf5c5e.js', 'c# c-sharp csharp https://js.how234.com/c506fb5b83/dc0cf946804bdf97ca5e71130ef8026b0a/dc16e55b9147c4cc9d042f/dc1dd5409440dfbdfe5e7c0819.js', 'css https://js.how234.com/c506fb5b83/dc0cf946804bdf97ca5e71130ef8026b0a/dc16e55b9147c4cc9d042f/dc1dd5409440dfbdde45.js', 'delphi pascal https://js.how234.com/c506fb5b83/dc0cf946804bdf97ca5e71130ef8026b0a/dc16e55b9147c4cc9d042f/dc1dd5409440dfbac85a6d1200.js', 'diff patch pas https://js.how234.com/c506fb5b83/dc0cf946804bdf97ca5e71130ef8026b0a/dc16e55b9147c4cc9d042f/dc1dd5409440dfbac4507b.js', 'erl erlang https://js.how234.com/c506fb5b83/dc0cf946804bdf97ca5e71130ef8026b0a/dc16e55b9147c4cc9d042f/dc1dd5409440dfbbdf5a7c140e.js', 'groovy https://js.how234.com/c506fb5b83/dc0cf946804bdf97ca5e71130ef8026b0a/dc16e55b9147c4cc9d042f/dc1dd5409440dfb9df59720c10.js', 'haxe hx https://js.how234.com/c506fb5b83/dc0cf946804bdf97ca5e71130ef8026b0a/dc16e55b9147c4cc9d042f/dc1dd5409440dfb6cc4e78.js', 'java https://js.how234.com/c506fb5b83/dc0cf946804bdf97ca5e71130ef8026b0a/dc16e55b9147c4cc9d042f/dc1dd5409440dfb4cc407c.js', 'jfx javafx https://js.how234.com/c506fb5b83/dc0cf946804bdf97ca5e71130ef8026b0a/dc16e55b9147c4cc9d042f/dc1dd5409440dfb4cc407c3c31.js', 'js jscript javascript https://js.how234.com/c506fb5b83/dc0cf946804bdf97ca5e71130ef8026b0a/dc16e55b9147c4cc9d042f/dc1dd5409440dfb4fe556f1319e4.js', 'perl pl https://js.how234.com/c506fb5b83/dc0cf946804bdf97ca5e71130ef8026b0a/dc16e55b9147c4cc9d042f/dc1dd5409440dfaec84471.js', 'php https://js.how234.com/c506fb5b83/dc0cf946804bdf97ca5e71130ef8026b0a/dc16e55b9147c4cc9d042f/dc1dd5409440dfaec546.js', 'text plain https://js.how234.com/c506fb5b83/dc0cf946804bdf97ca5e71130ef8026b0a/dc16e55b9147c4cc9d042f/dc1dd5409440dfaec1577414.js', 'py python https://js.how234.com/c506fb5b83/dc0cf946804bdf97ca5e71130ef8026b0a/dc16e55b9147c4cc9d042f/dc1dd5409440dfaed442751507.js', 'ruby rails ror rb https://js.how234.com/c506fb5b83/dc0cf946804bdf97ca5e71130ef8026b0a/dc16e55b9147c4cc9d042f/dc1dd5409440dfacd85464.js', 'scala https://js.how234.com/c506fb5b83/dc0cf946804bdf97ca5e71130ef8026b0a/dc16e55b9147c4cc9d042f/dc1dd5409440dfadce57711b.js', 'sql https://js.how234.com/c506fb5b83/dc0cf946804bdf97ca5e71130ef8026b0a/dc16e55b9147c4cc9d042f/dc1dd5409440dfaddc5a.js', 'vb vbnet https://js.how234.com/c506fb5b83/dc0cf946804bdf97ca5e71130ef8026b0a/dc16e55b9147c4cc9d042f/dc1dd5409440dfa8cf.js', 'ps powershell https://js.how234.com/c506fb5b83/dc0cf946804bdf97ca5e71130ef8026b0a/dc16e55b9147c4cc9d042f/dc1dd5409440dfaec24178083af8136214.js', 'xml xhtml xslt html https://js.how234.com/c506fb5b83/dc0cf946804bdf97ca5e71130ef8026b0a/dc16e55b9147c4cc9d042f/dc1dd5409440dfa6c05a.js', 'go golang https://js.how234.com/c506fb5b83/dc0cf946804bdf97ca5e71130ef8026b0a/dc16e55b9147c4cc9d042f/dc1dd5409440dfb9c2.js' );</script> <script type="text/javascript"> SyntaxHighlighter.all(); </script>