php7 参数、整形及字符串处理机制修改实例分析

1. PHP7参数机制的变化

1.1 Argument unpacking

在PHP5中,使用可变变量可以将一个数组的元素变成独立的变量,例如:

$array = array('a', 'b', 'c');

list($var1, $var2, $var3) = $array;

在PHP7中,新增了argument unpacking特性,可以直接使用...运算符将一个数组展开,将元素变成独立的参数。

$array = array('a', 'b', 'c');

function test($var1, $var2, $var3) {

echo $var1 . $var2 . $var3;

}

test(...$array); //输出abc

1.2 类型提示

PHP7加入了函数参数和返回值的强类型限制,可以通过类型提示来实现。如果函数的参数或返回值不符合指定类型,会抛出错误。

function test(int $a, string $b) {

//函数体

}

1.3 Null coalescing operator

PHP7中新增了null合并运算符???,如果一个变量为null,则返回指定的默认值。这个运算符只能处理两个值,如果第一个值不为null,则返回第一个值。

$value = $a ?? $b;

1.4 Spaceship operator

PHP7中还增加了一个新的操作符:<=>,也被称为“spaceship operator”,主要用于比较两个值的大小,并返回1、0或-1。

echo 1 <=> 1; //输出0

echo 1 <=> 2; //输出-1

echo 2 <=> 1; //输出1

2. PHP7整形和字符串处理机制的修改

2.1 整形处理机制的修改

在PHP5中,整型值在内部以长整型和短整型两种方式存储。在PHP7中,整型只有一种类型,即signed long(有符号长整型),默认为64位。这种变化增加了处理远大于32位数值的能力。

2.2 字符串处理机制的修改

在PHP5中,字符串处理采用了两种类型,即ASCII和UCS-2两种。在PHP7中,全部采用了UTF-8编码。这样可以使得字母和数字能够正确编码,同时还可以使得某些特殊字符不会被统一编码误判。同时,由于UTF-8编码是一种变长编码方式,可以有效减小占用存储空间的大小。

2.3 字符串函数mbstring增强

mbstring是PHP的一个扩展模块,提供了更加全面而又稳定的多字节支持。PHP7中增强了mbstring函数的支持能力,提高了处理中文字符等多字节字符的能力,同时对于一些函数的使用方法也做了一些优化。

以上就是PHP7参数、整形及字符串处理机制修改的一些实例分析。

后端开发标签