搜尋
  • 登入
  • 報名
密碼重置成功

關注您感興趣的項目並了解有關它們的最新消息

首頁 後端開發 PHP PHP7新功能手冊 字串處理機制修改

字串處理機制修改

收藏 105
閱讀 69610
更新時間 2016-09-11

一、含有十六進位字元的字串不再視為數字

含有十六進位字元的字串不再視為數字,也不再區別對待。例如下面的程式碼:

var_dump("0x123" == "291");     // bool(false)     (previously true)
var_dump(is_numeric("0x123"));  // bool(false)     (previously true)
var_dump("0xe" + "0x1");        // int(0)          (previously 16)
var_dump(substr("foo", "0x1")); // string(3) "foo" (previously "oo")
// Notice: A non well formed numeric value encountered
可以使用filter_var函數來檢查一個字串是否包含十六進位字元或是否可以轉成一個整數
$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)

二、\u{後面如果包含非法字元會報錯

雙引號和heredocs語法裡面增加了unicode 碼點轉義語法,「\u{」後面必須是utf-8字元。如果是非utf-8字符,會報錯:

$str = "\u{xyz}"; // Fatal error: Invalid UTF-8 codepoint escape sequence
可以透過對第一個\進行轉義來避免這種錯誤。
 $str = "\u{xyz}"; // Works fine

「\u」後面如果沒有{,則沒有影響:

$str = "\u202e"; // Works fine

PHP IntlChar()

PHP 7 透過intl 擴充來支援國際化(i18n) 和在地化(l10n) 。此擴充只是對 ICU 庫的基礎包裝,並提供了和 ICU 庫類似的方法和特性。

PHP 7 透過新的 IntlChar 類別暴露出 ICU 中的 Unicode 字元特性。這個類別本身定義了許多靜態方法用於操作多字元集的 unicode 字元。

實例

<?php
printf('%x', IntlChar::CODEPOINT_MAX);
echo IntlChar::charName('@');
var_dump(IntlChar::ispunct('!'));
?>

以上程式執行輸出結果為:

10ffff
COMMERCIAL AT
bool(true)
熱AI工具
Undress AI Tool
Undress AI Tool

免費脫衣圖片

AI Clothes Remover
AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undresser.AI Undress
Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

Stock Market GPT
Stock Market GPT

人工智慧支援投資研究,做出更明智的決策

熱門工具
記事本++7.3.1
記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版
SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1
禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6
Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版
SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)