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 相关文章推荐
15个小时----从修改程序到自己些程序
Oct 09 PHP
新手配置 PHP 调试环境(IIS+PHP+MYSQL)
Jan 10 PHP
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
May 03 PHP
php中函数的形参与实参的问题说明
Sep 01 PHP
php集成套件服务器xampp安装使用教程(适合第一次玩PHP的新手)
Jun 03 PHP
如何使用php脚本给html中引用的js和css路径打上版本号
Nov 18 PHP
高质量PHP代码的50个实用技巧必备(下)
Jan 22 PHP
Symfony学习十分钟入门经典教程
Feb 03 PHP
php使用curl实现ftp文件下载功能
May 16 PHP
让whoops帮我们告别ThinkPHP6的异常页面
Mar 02 PHP
php设计模式之原型模式分析【星际争霸游戏案例】
Mar 23 PHP
phpstorm最新激活码分享亲测phpstorm2020.2.3版可用
Nov 22 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/03/27 PHP
php实现的数字验证码及数字运算验证码
2015/07/30 PHP
PHP文字转图片功能原理与实现方法分析
2017/08/31 PHP
使用jQuery fancybox插件打造一个实用的数据传输模态弹出窗体
2013/01/15 Javascript
JS连接SQL数据库与ACCESS数据库的方法实例
2013/11/21 Javascript
js老生常谈之this,constructor ,prototype全面解析
2016/04/05 Javascript
jQuery中的ready函数与window.onload谁先执行
2016/06/21 Javascript
jQuery simpleModal插件的使用介绍
2016/08/30 Javascript
jq给页面添加覆盖层遮罩的实例
2017/02/16 Javascript
Vue非父子组件通信详解
2017/06/12 Javascript
Vue导出页面为PDF格式的实现思路
2018/07/31 Javascript
webpack 静态资源集中输出的方法示例
2018/11/09 Javascript
微信小程序自定义组件传值 页面和组件相互传数据操作示例
2019/05/05 Javascript
redux处理异步action解决方案
2020/03/22 Javascript
Vue使用axios引起的后台session不同操作
2020/08/14 Javascript
VUE Elemen-ui之穿梭框使用方法详解
2021/01/19 Javascript
python应用程序在windows下不出现cmd窗口的办法
2014/05/29 Python
使用Python操作MySQL的一些基本方法
2015/08/16 Python
Python requests模块实例用法
2019/02/11 Python
python获取微信企业号打卡数据并生成windows计划任务
2019/04/30 Python
深入浅析css3 中display box使用方法
2015/11/25 HTML / CSS
基础的CSS3弹性盒Flexbox布局使用实例
2016/04/08 HTML / CSS
将"引用"作为函数返回值类型的格式、好处和需要遵守的规则
2016/02/09 面试题
幼儿教师个人求职信范文
2013/09/21 职场文书
物流仓储实习自我鉴定
2013/09/25 职场文书
美工的岗位职责
2013/11/14 职场文书
党员一帮一活动总结
2014/07/08 职场文书
基层党员四风问题自我剖析材料
2014/09/29 职场文书
学习作风建设心得体会
2014/10/22 职场文书
2014年化验室工作总结
2014/11/21 职场文书
2015年采购工作总结
2015/04/10 职场文书
电信营业员岗位职责
2015/04/14 职场文书
泰坦尼克号观后感
2015/06/04 职场文书
2015年大学组织委员个人工作总结
2015/10/23 职场文书
2016年公司“3.12”植树节活动总结
2016/03/16 职场文书
在Spring-Boot中如何使用@Value注解注入集合类
2021/08/02 Java/Android