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 相关文章推荐
把从SQL中取出的数据转化成XMl格式
Oct 09 PHP
oracle资料库函式库
Oct 09 PHP
一个简易需要注册的留言版程序
Oct 09 PHP
浅析php原型模式
Nov 25 PHP
PHP中的事务使用实例
May 26 PHP
Zend Framework教程之Zend_Config_Xml用法分析
Mar 23 PHP
php ucwords() 函数将字符串中每个单词的首字符转换为大写(实现代码)
May 12 PHP
详解WordPress中添加友情链接的方法
May 21 PHP
php自定义函数转换html标签示例
Sep 29 PHP
iOS自定义提示弹出框实现类似UIAlertView的效果
Nov 16 PHP
利用PHP抓取百度阅读的方法示例
Dec 18 PHP
Yii2实现ActiveForm ajax提交
May 26 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中的extract的作用分析
2008/04/09 PHP
PHP中文件读、写、删的操作(PHP中对文件和目录操作)
2012/03/06 PHP
ThinkPHP3.1之D方法实例详解
2014/06/20 PHP
使用PHP生成图片的缩略图的方法
2015/08/18 PHP
浅析PHP关键词替换的类(避免重复替换,保留与还原原始链接)
2015/09/22 PHP
详解Laravel5.6 Passport实现Api接口认证
2018/07/27 PHP
jquery实用代码片段集合
2010/08/12 Javascript
js Array对象的扩展函数代码
2013/04/24 Javascript
JavaScript实现将UPC转换成ISBN的方法
2015/05/26 Javascript
js实现跨域的几种方法汇总(图片ping、JSONP和CORS)
2015/10/25 Javascript
Bootstrap每天必学之标签与徽章
2015/11/27 Javascript
javascript每日必学之多态
2016/02/23 Javascript
jQuery初级教程之网站品牌列表效果
2017/08/02 jQuery
jQuery实现鼠标响应式淘宝动画效果示例
2018/02/13 jQuery
JS实现自定义弹窗功能
2018/08/08 Javascript
理顺8个版本vue的区别(小结)
2018/09/17 Javascript
js canvas实现二维码和图片合成的海报
2020/11/19 Javascript
JS制作简易计算器的实例代码
2020/07/04 Javascript
JS实现购物车基本功能
2020/11/08 Javascript
[01:25]2014DOTA2国际邀请赛 zhou分析LGD比赛情况
2014/07/14 DOTA
[02:38]2018DOTA2亚洲邀请赛赛前采访-VGJ.T
2018/04/03 DOTA
Python 40行代码实现人脸识别功能
2017/04/02 Python
Python OpenCV 直方图的计算与显示的方法示例
2018/02/08 Python
PyQt+socket实现远程操作服务器的方法示例
2019/08/22 Python
Python socket处理client连接过程解析
2020/03/18 Python
Python单元测试及unittest框架用法实例解析
2020/07/09 Python
python操作ini类型配置文件的实例教程
2020/10/30 Python
HTML5 文件域+FileReader 分段读取文件并上传到服务器
2017/10/23 HTML / CSS
英国骑行、跑步、游泳、铁人三项运动装备专卖店:Wiggle
2016/08/23 全球购物
升职自荐信
2013/11/28 职场文书
电信营业员自我评价分享
2014/01/17 职场文书
人力资源职位说明书
2014/07/29 职场文书
2014年党支部工作总结
2014/11/13 职场文书
2014年财政工作总结
2014/12/10 职场文书
前台接待岗位职责
2015/02/03 职场文书
十大公认最好看的动漫:《咒术回战》在榜,《钢之炼金术师》第一
2022/03/18 日漫