时间:2021-05-26
本文实例讲述了php7 参数、整形及字符串处理机制修改。分享给大家供大家参考,具体如下:
重复的参数命名不再支持。比如下面的代码执行的时候会报错:
public function foo($a, $b, $unused, $unused) {// ... }编者按:应该没有人这样用吧。
func_get_arg()和func_get_args()这两个方法返回参数当前的值,而不是传入时的值。当前的值有可能会被修改
function foo($x) { $x++; var_dump(func_get_arg(0));}foo(1);上面的代码会打印2, 而不是1。如果想打印原始的值,调用的顺序调整下即可。
PHP7的运行结果:
Stack trace:
#0 file.php(4): foo(42)
#1 {main}
PHP5的运行结果:
Stack trace:
#0 file.php(4): foo('string')
#1 {main}
这个调整不会影响代码的行为,不过在调试的时候需要注意这个变化。
其他和参数有关的函数都是同样的调整,比如debug_backtrace() .
无效的八进制数字(包含大于7的数字)会报编译错误,比如下面的代码会报错:
老版本的PHP会把无效的数字忽略。
老版本的PHP运行结果和cpu架构有关系。比如x86会返回1。
含有十六进制字符的字符串不再视为数字,也不再区别对待。比如下面的代码:
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)双引号和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 finePHP 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常用函数与技巧总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
encode()方法返回字符串的编码版本。默认编码是当前的默认字符串编码。可给予设置不同的错误处理机制。语法以下是encode()方法的语法:str.encod
本文实例讲述了C#字符串数组转换为整形数组的方法。分享给大家供大家参考。具体实现方法如下://////字符串数组转换整形数组//////字符串数组///publ
本文实例分析了PHP常见字符串处理函数用法。分享给大家供大家参考,具体如下:更多关于PHP相关内容感兴趣的读者可查看本站专题:《php字符串(string)用法
本文实例分析了php字符串截取函数用法。分享给大家供大家参考。具体分析如下:php自带的截取字符串的函数只能处理英文,数字的不能截取中文混排的,后面一个示例比较
前言PHP7将类型申明变成了可能,PHP7支持的形参类型申明的类型有以下几种整型浮点型字符串型布尔类型函数形参与返回类型声明demo如下/***@author袁