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 相关文章推荐
1.PHP简介
Oct 09 PHP
PHP写的获取各搜索蜘蛛爬行记录代码
Aug 21 PHP
yii框架配置默认controller和action示例
Apr 30 PHP
个人写的PHP验证码生成类分享
Aug 21 PHP
PHP中empty和isset对于参数结构的判断及empty()和isset()的区别
Nov 15 PHP
PHP简单处理表单输入的特殊字符的方法
Feb 03 PHP
Zend Framework教程之前端控制器Zend_Controller_Front用法详解
Mar 07 PHP
thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
May 19 PHP
php基于dom实现读取图书xml格式数据的方法
Feb 03 PHP
Yii 2.0中场景的使用教程
Jun 02 PHP
PHP实现根据数组某个键值大小进行排序的方法
Mar 13 PHP
laravel7学习之无限级分类的最新实现方法
Sep 30 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
ADODB类使用
2006/11/25 PHP
PHP容易忘记的知识点分享
2013/04/30 PHP
php设计模式之单例、多例设计模式的应用分析
2013/06/30 PHP
如何阻止网站被恶意反向代理访问(防网站镜像)
2014/03/18 PHP
3款值得推荐的微信开发开源框架
2014/10/28 PHP
php将图片保存入mysql数据库失败的解决方法
2014/12/27 PHP
jquery下动态显示jqGrid以及jqGrid的属性设置容易出现问题的解决方法
2010/10/22 Javascript
jqTransform form表单美化插件使用方法
2012/07/05 Javascript
js验证上传图片的方法
2015/05/12 Javascript
AngularJS打开页面隐藏显示表达式用法示例
2016/12/25 Javascript
JavaScript实现水平进度条拖拽效果
2017/01/18 Javascript
脚本div实现拖放功能(两种)
2017/02/13 Javascript
vue2.x select2 指令封装详解
2017/10/12 Javascript
vueJs实现DOM加载完之后自动下拉到底部的实例代码
2018/08/31 Javascript
jquery实现垂直手风琴菜单
2020/03/04 jQuery
[08:44]DOTA2发布会群星聚首 我们都是刀塔人
2014/03/21 DOTA
[02:36]DOTA2英雄基础教程 帕格纳
2014/01/20 DOTA
[01:01:52]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第二场 1月9日
2021/03/11 DOTA
python如何实现内容写在图片上
2018/03/23 Python
如何用python写一个简单的词法分析器
2018/12/18 Python
详解python中docx库的安装过程
2019/11/08 Python
Python(PyS60)实现简单语音整点报时
2019/11/18 Python
python3 实现口罩抽签的功能
2020/03/11 Python
快时尚眼镜品牌,全国连锁眼镜店:LOHO眼镜生活
2018/10/08 全球购物
美国滑雪板和装备购物网站:Skis.com
2018/12/20 全球购物
英国健身超市:Fitness Superstore
2019/06/17 全球购物
专升本自我鉴定
2013/10/10 职场文书
新驾驶员个人自我评价
2014/01/03 职场文书
公务员转正考察材料
2014/02/07 职场文书
科学发展观标语
2014/10/08 职场文书
离开雷锋的日子观后感
2015/06/09 职场文书
百家讲坛观后感
2015/06/12 职场文书
2015年教师国培感言
2015/08/01 职场文书
2016年寒假社会实践活动心得体会
2015/10/09 职场文书
2016年大学生党员公开承诺书
2016/03/24 职场文书
一文带你探究MySQL中的NULL
2021/11/11 MySQL