php7 字串處理機制修改

2021-09-10 18:44:53 字數 1385 閱讀 9921

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

含有十六進製制字元的字串不再視為數字,也不再區別對待。比如下面的**:

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)

var_dump($int); // int(65535)

二、\u"; // fatal error: invalid utf-8 codepoint escape sequence可以通過對第乙個\進行轉義來避免這種錯誤。

$str = "\\u"; // works fine
「\u」後面如果沒有{,則沒有影響:

$str = "\u202e"; // works fine
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)

php7 變數處理機制修改

一 間接變數 屬性和方法引用都按照從左到右的順序進行解釋 foo bar baz interpreted as foo bar baz foo bar baz interpreted as foo bar baz foo bar baz interpreted as foo bar baz foo ...

PHP7擴充套件開發之字串處理

這次,我們來看看字串在php擴充套件裡面如何處理。示例 如下 function str concat prefix,string else echo str concat hello word echo n echo str concat hello hello bo56.com echo n 上面...

一步一步學習PHP 7 字串

1.字串的表現形式 在php中,字串有三種表現形式 單引號,雙引號,以及heredoc。php手冊建議,在一般情況下,盡量使用單引號的字串。如果需要轉義變數,才使用雙引號的字串。如果需要多行顯示,才使用heredoc。heredoc形式 test foobar hello world hello p...