關於 php7 中 "0xFFFFFFFF" 和 0xFFFFFFFF 的問題

來源:互聯網
上載者:User
關鍵字 php
$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 使它同上面值一樣呢?

回複內容:

$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開始,含十六進位字串不再被認為是數字
如果非要檢測字串是否含十六進位數字,官方建議的代碼是

針對你的問題就應該改成

$t1 = 0x3FFFFFFF & (1 * (0xd5b42e11));$t2 = 0x3FFFFFFF & (1 * (filter_var("0xd5b42e11", FILTER_VALIDATE_INT, FILTER_FLAG_ALLOW_HEX)));var_dump($t1,$t2);
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.