php教程自学网 - 轻松零基础学php视频教程
条幅广告
当前位置: 主页 > PHP7 >

字符串处理机制修改

时间:2018-10-06 16:37来源:未知 作者:admin 点击:
一、含有十六进制字符的字符串不再视为数字 含有十六进制字符的字符串不再视为数字,也不再区别对待。比如下面的代码: var_dump(0x123 == 291); // bool(false) (previously true) var_dump(is_nume
一、含有十六进制字符的字符串不再视为数字
含有十六进制字符的字符串不再视为数字,也不再区别对待。比如下面的代码:
 
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
(责任编辑:admin)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
相关推荐
  • 错误处理
  • PHP 7 改变了大多数错误的报告方式。不同于 PHP 5 的传统错误报告机制,现在大

  • 错误处理机制修改
  • 一、现在有两个异常类:Exception and Error. PHP7现在有两个异常类,Exception and Er

  • 整型处理机制修改
  • 一、无效八进制数字会报编译错误 无效的八进制数字(包含大于7的数字)会报

  • 参数处理机制修改
  • 一、重复参数命名不再支持。 重复的参数命名不再支持。比如下面的代码执行

  • 变量处理机制修改
  • PHP7对变量解析机制做了调整,统一了变量解析顺序。 PHP7版本对变量解析机制做