国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

PHP7新特性手冊(cè) / 字符串處理機(jī)制修改

字符串處理機(jī)制修改

字符串處理機(jī)制修改


一、含有十六進(jìn)制字符的字符串不再視為數(shù)字

含有十六進(jìn)制字符的字符串不再視為數(shù)字,也不再區(qū)別對(duì)待。比如下面的代碼:

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函數(shù)來檢查一個(gè)字符串是否包含十六進(jìn)制字符或者是否可以轉(zhuǎn)成一個(gè)整型
$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{后面如果包含非法字符會(huì)報(bào)錯(cuò)

雙引號(hào)和heredocs語法里面增加了unicode 碼點(diǎn)轉(zhuǎn)義語法,“\u{”后面必須是utf-8字符。如果是非utf-8字符,會(huì)報(bào)錯(cuò):

$str = "\u{xyz}"; // Fatal error: Invalid UTF-8 codepoint escape sequence
可以通過對(duì)第一個(gè)\進(jìn)行轉(zhuǎn)義來避免這種錯(cuò)誤。
 $str = "\\u{xyz}"; // Works fine

“\u”后面如果沒有{,則沒有影響:

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

PHP IntlChar()

PHP 7 通過 intl 擴(kuò)展來支持國際化 (i18n) 和本地化 (l10n) 。此擴(kuò)展僅僅是對(duì) ICU 庫的基礎(chǔ)包裝,并提供了和 ICU 庫類似的方法和特性。

PHP 7 通過新的 IntlChar 類暴露出 ICU 中的 Unicode 字符特性。這個(gè)類自身定義了許多靜態(tài)方法用于操作多字符集的 unicode 字符。

實(shí)例

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

以上程序執(zhí)行輸出結(jié)果為:

10ffff
COMMERCIAL AT
bool(true)