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 相关文章推荐
ASP知识讲座四
Oct 09 PHP
漂亮但不安全的CTB
Oct 09 PHP
PHP 中的批处理的实现
Jun 14 PHP
二招解决php乱码问题
Mar 25 PHP
PHP 第二节 数据类型之字符串类型
Apr 28 PHP
php递归函数三种实现方法及如何实现数字累加
Aug 07 PHP
php简单实现批量上传图片的方法
May 09 PHP
php基于curl重写file_get_contents函数实例
Nov 08 PHP
PHP常用的类封装小结【4个工具类】
Jun 28 PHP
PHP中的自动加载操作实现方法详解
Aug 06 PHP
Thinkphp5.0框架的Db操作实例分析【连接、增删改查、链式操作等】
Oct 11 PHP
php引用传递
Apr 01 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设计模式 Delegation(委托模式)
2011/06/26 PHP
注册页面之前先验证用户名是否存在的php代码
2012/07/14 PHP
php缓冲 output_buffering和ob_start使用介绍
2014/01/30 PHP
js 遍历json返回的map内容示例代码
2013/10/29 Javascript
innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解
2015/03/13 Javascript
jQuery实现HTML表格单元格的合并功能
2016/04/06 Javascript
微信小程序实现图片轮播及文件上传
2017/04/07 Javascript
JS如何实现在页面上快速定位(锚点跳转问题)
2017/08/14 Javascript
基于Vue 2.0的模块化前端 UI 组件库小结
2017/12/21 Javascript
Angular2 父子组件通信方式的示例
2018/01/29 Javascript
在vue组件中使用axios的方法
2018/03/16 Javascript
vue组件之间数据传递的方法实例分析
2019/02/12 Javascript
JavaScript多种页面刷新方法小结
2019/04/04 Javascript
解决vue props传Array/Object类型值,子组件报错的情况
2020/11/07 Javascript
Python 2与Python 3版本和编码的对比
2017/02/14 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
2018/05/19 Python
Python变量访问权限控制详解
2019/06/29 Python
简单了解python PEP的一些知识
2019/07/13 Python
浅析PEP572: 海象运算符
2019/10/15 Python
Python坐标线性插值应用实现
2019/11/13 Python
Python实现bilibili时间长度查询的示例代码
2020/01/14 Python
Python读取JSON数据操作实例解析
2020/05/18 Python
Scrapy基于scrapy_redis实现分布式爬虫部署的示例
2020/09/29 Python
python 可视化库PyG2Plot的使用
2021/01/21 Python
逼真的HTML5树叶飘落动画
2016/03/01 HTML / CSS
canvas 基础之图像处理的使用
2020/04/10 HTML / CSS
后勤工作职责
2013/12/22 职场文书
顶岗实习计划书
2014/01/10 职场文书
计算机学生的自我评价分享
2014/02/18 职场文书
校园标语大全
2014/06/19 职场文书
2014年挂职干部工作总结
2014/12/06 职场文书
2014年中班下学期工作总结
2014/12/11 职场文书
求职自我推荐信
2015/03/24 职场文书
pytorch通过训练结果的复现设置随机种子
2021/06/01 Python
Python实战之大鱼吃小鱼游戏的实现
2022/04/01 Python
Python中npy和mat文件的保存与读取
2022/04/24 Python