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操作数组相关函数
Feb 03 PHP
PHP实现取得HTTP请求的原文
Aug 18 PHP
常用的php图片处理类(水印、等比缩放、固定高宽)分享
Jun 19 PHP
PHP 前加at符合@的作用解析
Jul 31 PHP
Nginx服务器上安装并配置PHPMyAdmin的教程
Aug 18 PHP
学习php设计模式 php实现抽象工厂模式
Dec 07 PHP
PHP5.2中PDO的简单使用方法
Mar 25 PHP
PHP计算数组中值的和与乘积的方法(array_sum与array_product函数)
Apr 01 PHP
php使用PDO获取结果集的方法
Feb 16 PHP
yii2使用GridView实现数据全选及批量删除按钮示例
Mar 01 PHP
Laravel学习笔记之Artisan命令生成自定义模板的方法
Nov 22 PHP
PHP+ajax实现上传、删除、修改单张图片及后台处理逻辑操作详解
Feb 12 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
第十三节--对象串行化
2006/11/16 PHP
安装APACHE
2007/01/15 PHP
火车头采集器3.0采集图文教程
2007/03/17 PHP
PHP写的求多项式导数的函数代码
2012/07/04 PHP
thinkphp实现图片上传功能
2016/01/13 PHP
Laravel获取所有的数据库表及结构的方法
2019/10/10 PHP
Aster vs KG BO3 第一场2.19
2021/03/10 DOTA
Javascript 中介者模式实例
2009/12/16 Javascript
Jquery实战_读书笔记1—选择jQuery
2010/01/22 Javascript
Jquery的hover方法让鼠标经过li时背景变色
2013/09/06 Javascript
js style动态设置table高度
2014/10/21 Javascript
javascript实现Email邮件显示与删除功能
2015/11/21 Javascript
Web前端框架bootstrap实战【第一次接触使用】
2016/12/28 Javascript
bootstrap multiselect 多选功能实现方法
2017/06/05 Javascript
微信小程序判断页面是否从其他页面返回的实例代码
2019/07/03 Javascript
[49:35]KG vs SECRET 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
[01:19:46]DOTA2-DPC中国联赛 正赛 SAG vs DLG BO3 第一场 2月28日
2021/03/11 DOTA
[10:05]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD 选手采访
2021/03/11 DOTA
使用Python获取CPU、内存和硬盘等windowns系统信息的2个例子
2014/04/15 Python
利用python获取当前日期前后N天或N月日期的方法示例
2017/07/30 Python
Python实现的多线程同步与互斥锁功能示例
2017/11/30 Python
详解python OpenCV学习笔记之直方图均衡化
2018/02/08 Python
Django自定义过滤器定义与用法示例
2018/03/22 Python
python3.5基于TCP实现文件传输
2020/03/20 Python
2020年10款优秀的Python第三方库,看看有你中意的吗?
2021/01/12 Python
HTML5 新标签全部总汇(推荐)
2016/06/13 HTML / CSS
爱尔兰领先的在线体育用品零售商:theGAAstore
2018/04/16 全球购物
英国厨房与餐具用品为主的设计品牌:Joseph Joseph
2018/04/26 全球购物
德国综合购物网站:OTTO
2018/11/13 全球购物
自考自我鉴定范文
2013/10/30 职场文书
司法所长先进事迹
2014/06/02 职场文书
大专毕业生求职信
2014/07/05 职场文书
餐饮周年庆活动方案
2014/08/14 职场文书
2014年党员自我评议对照检查材料
2014/09/20 职场文书
《田忌赛马》教学反思
2016/02/19 职场文书
vue2实现provide inject传递响应式
2021/05/21 Vue.js