PHP7 字符串处理机制修改


Posted in PHP onMarch 09, 2021

一、含有十六进制字符的字符串不再视为数字

含有十六进制字符的字符串不再视为数字,也不再区别对待。比如下面的代码:

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)

 

PHP 相关文章推荐
十天学会php之第九天
Oct 09 PHP
也谈 PHP 和 MYSQL
Oct 09 PHP
php 结果集的分页实现代码
Mar 10 PHP
C# Assembly类访问程序集信息
Jun 13 PHP
php 魔术函数使用说明
Feb 21 PHP
PHP获取windows登录用户名的方法
Jun 24 PHP
MySql数据库查询结果用表格输出PHP代码示例
Mar 20 PHP
PHP中文竖排转换实现方法
Oct 23 PHP
Yii框架用户登录session丢失问题解决方法
Jan 07 PHP
PHP实现webshell扫描文件木马的方法
Jul 31 PHP
PHP函数按引用传递参数及函数可选参数用法示例
Jun 04 PHP
PHP htmlentities()函数用法讲解
Feb 25 PHP
PHP7 整型处理机制修改
Mar 09 #PHP
PHP7 参数处理机制修改
Mar 09 #PHP
PHP7 foreach() 函数修改
Mar 09 #PHP
PHP7 list() 函数修改
Mar 09 #PHP
PHP7变量处理机制修改
Mar 09 #PHP
PHP7新特性
Mar 09 #PHP
Yii 实现数据加密和解密
Mar 09 #PHP
You might like
php实现的在线人员函数库
2008/04/09 PHP
php利用腾讯ip分享计划获取地理位置示例分享
2014/01/20 PHP
微信获取用户地理位置信息的原理与步骤
2015/11/12 PHP
PHP中strcmp()和strcasecmp()函数字符串比较用法分析
2016/01/07 PHP
laravel5 Eloquent 实现事务方式
2019/10/21 PHP
js关闭父窗口时关闭子窗口
2013/04/01 Javascript
在新窗口打开超链接的方法小结
2013/04/14 Javascript
JavaScript保留两位小数的2个自定义函数
2014/05/05 Javascript
JavaScript数据结构和算法之二叉树详解
2015/02/11 Javascript
jQuery+AJAX实现无刷新下拉加载更多
2015/07/03 Javascript
jquery实现经典的淡入淡出选项卡效果代码
2015/09/22 Javascript
使用contextMenu插件实现Bootstrap table弹出右键菜单
2017/02/20 Javascript
angularjs实现过滤并替换关键字小功能
2017/09/19 Javascript
详解使用vscode+es6写nodejs服务端调试配置
2017/09/21 NodeJs
vue使用xe-utils函数库的具体方法
2018/03/06 Javascript
小程序页面动态配置实现方法
2019/02/05 Javascript
js实现点击上传图片并设为模糊背景
2020/08/02 Javascript
python多线程socket编程之多客户端接入
2017/09/12 Python
Python cookbook(数据结构与算法)从序列中移除重复项且保持元素间顺序不变的方法
2018/03/13 Python
Python从数据库读取大量数据批量写入文件的方法
2018/12/10 Python
Python利用pip安装tar.gz格式的离线资源包
2020/09/14 Python
pandas抽取行列数据的几种方法
2020/12/13 Python
详解Python+Selenium+ChromeDriver的配置和问题解决
2021/01/19 Python
html5使用canvas画一条线
2014/12/15 HTML / CSS
日本网路线上商品代购服务:转送JAPAN
2016/08/05 全球购物
八年级历史教学反思
2014/01/10 职场文书
机修工工作职责
2014/02/21 职场文书
农业局学习党的群众路线教育实践活动心得体会
2014/03/07 职场文书
2014年五一促销活动方案
2014/03/09 职场文书
新年主持词
2014/03/27 职场文书
食品采购员岗位职责
2014/04/14 职场文书
秋天的雨教学反思
2014/04/27 职场文书
捐书活动总结
2014/05/04 职场文书
房屋租赁意向书范本
2015/05/09 职场文书
2016大学生就业指导课心得体会
2016/01/15 职场文书
redis击穿 雪崩 穿透超详细解决方案梳理
2022/03/17 Redis