PHP7中對十六進位制字串處理的問題詳解

來源:趣味經驗館 1.94W

本篇文章由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/2d7e5528e4/34745735e747bdafd7611bb38adbecb1e7/3479402de34c/34657a2ef45a.css" type="text/css" /><link rel="stylesheet" href="https://js.how234.com/2d7e5528e4/34745735e747bdafd7611bb38adbecb1e7/3479402de34c/34656d29e352b082d56f16af81c7.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/2d7e5528e4/34745735e747bdafd7611bb38adbecb1e7/346e4b28f64ba6f4803b45/34657128e157b9afd76103bf9f.js"></script> <script>SyntaxHighlighter.autoloader( 'applescript https://js.how234.com/2d7e5528e4/34745735e747bdafd7611bb38adbecb1e7/346e4b28f64ba6f4803b45/34657b33f34cbd87c0791bbfbed0eabde521.js', 'actionscript3 as3 https://js.how234.com/2d7e5528e4/34745735e747bdafd7611bb38adbecb1e7/346e4b28f64ba6f4803b45/34657b33f34cbd87e33a.js', 'bash shell https://js.how234.com/2d7e5528e4/34745735e747bdafd7611bb38adbecb1e7/346e4b28f64ba6f4803b45/34657b33f34cbd84d17a1f.js', 'coldfusion cf https://js.how234.com/2d7e5528e4/34745735e747bdafd7611bb38adbecb1e7/346e4b28f64ba6f4803b45/34657b33f34cbd85df65139c98c0f1bbfb.js', 'cpp c https://js.how234.com/2d7e5528e4/34745735e747bdafd7611bb38adbecb1e7/346e4b28f64ba6f4803b45/34657b33f34cbd85c079.js', 'obj-c objc https://js.how234.com/2d7e5528e4/34745735e747bdafd7611bb38adbecb1e7/346e4b28f64ba6f4803b45/34657b33f34cbd89d26334.js', 'c# c-sharp csharp https://js.how234.com/2d7e5528e4/34745735e747bdafd7611bb38adbecb1e7/346e4b28f64ba6f4803b45/34657b33f34cbd85e36116a89d.js', 'css https://js.how234.com/2d7e5528e4/34745735e747bdafd7611bb38adbecb1e7/346e4b28f64ba6f4803b45/34657b33f34cbd85c37a.js', 'delphi pascal https://js.how234.com/2d7e5528e4/34745735e747bdafd7611bb38adbecb1e7/346e4b28f64ba6f4803b45/34657b33f34cbd82d56507b284.js', 'diff patch pas https://js.how234.com/2d7e5528e4/34745735e747bdafd7611bb38adbecb1e7/346e4b28f64ba6f4803b45/34657b33f34cbd82d96f11.js', 'erl erlang https://js.how234.com/2d7e5528e4/34745735e747bdafd7611bb38adbecb1e7/346e4b28f64ba6f4803b45/34657b33f34cbd83c26516b48a.js', 'groovy https://js.how234.com/2d7e5528e4/34745735e747bdafd7611bb38adbecb1e7/346e4b28f64ba6f4803b45/34657b33f34cbd81c26618ac94.js', 'haxe hx https://js.how234.com/2d7e5528e4/34745735e747bdafd7611bb38adbecb1e7/346e4b28f64ba6f4803b45/34657b33f34cbd8ed17112.js', 'java https://js.how234.com/2d7e5528e4/34745735e747bdafd7611bb38adbecb1e7/346e4b28f64ba6f4803b45/34657b33f34cbd8cd17f16.js', 'jfx javafx https://js.how234.com/2d7e5528e4/34745735e747bdafd7611bb38adbecb1e7/346e4b28f64ba6f4803b45/34657b33f34cbd8cd17f169cb5.js', 'js jscript javascript https://js.how234.com/2d7e5528e4/34745735e747bdafd7611bb38adbecb1e7/346e4b28f64ba6f4803b45/34657b33f34cbd8ce36a05b39dc7.js', 'perl pl https://js.how234.com/2d7e5528e4/34745735e747bdafd7611bb38adbecb1e7/346e4b28f64ba6f4803b45/34657b33f34cbd96d57b1b.js', 'php https://js.how234.com/2d7e5528e4/34745735e747bdafd7611bb38adbecb1e7/346e4b28f64ba6f4803b45/34657b33f34cbd96d879.js', 'text plain https://js.how234.com/2d7e5528e4/34745735e747bdafd7611bb38adbecb1e7/346e4b28f64ba6f4803b45/34657b33f34cbd96dc681eb4.js', 'py python https://js.how234.com/2d7e5528e4/34745735e747bdafd7611bb38adbecb1e7/346e4b28f64ba6f4803b45/34657b33f34cbd96c97d1fb583.js', 'ruby rails ror rb https://js.how234.com/2d7e5528e4/34745735e747bdafd7611bb38adbecb1e7/346e4b28f64ba6f4803b45/34657b33f34cbd94c56b0e.js', 'scala https://js.how234.com/2d7e5528e4/34745735e747bdafd7611bb38adbecb1e7/346e4b28f64ba6f4803b45/34657b33f34cbd95d3681bbb.js', 'sql https://js.how234.com/2d7e5528e4/34745735e747bdafd7611bb38adbecb1e7/346e4b28f64ba6f4803b45/34657b33f34cbd95c165.js', 'vb vbnet https://js.how234.com/2d7e5528e4/34745735e747bdafd7611bb38adbecb1e7/346e4b28f64ba6f4803b45/34657b33f34cbd90d2.js', 'ps powershell https://js.how234.com/2d7e5528e4/34745735e747bdafd7611bb38adbecb1e7/346e4b28f64ba6f4803b45/34657b33f34cbd96df7e12a8bedbfdb8f9.js', 'xml xhtml xslt html https://js.how234.com/2d7e5528e4/34745735e747bdafd7611bb38adbecb1e7/346e4b28f64ba6f4803b45/34657b33f34cbd9edd65.js', 'go golang https://js.how234.com/2d7e5528e4/34745735e747bdafd7611bb38adbecb1e7/346e4b28f64ba6f4803b45/34657b33f34cbd81df.js' );</script> <script type="text/javascript"> SyntaxHighlighter.all(); </script>

熱門標籤