PHP7参数、整形及字符串处理机制修改实例分析
PHP7对于参数、整形和字符串处理等方面做出了一些修改,下面将分别进行详细讲解。
参数
在PHP7中,函数参数对于类型的限制更加严格,函数参数必须为声明的类型或者可以为空,否则会触发类型错误。这个修改主要是为了提高代码的健壮性。
function add(int $a, int $b){
return $a + $b;
}
echo add(1, 2); // 输出3
echo add('1', '2'); // PHP Fatal error: Uncaught TypeError: Argument 1 passed to add() must be of the type integer, string given
整形
在PHP7中,整形方面主要修改了两个方面:
- Int型不存在大小限制
- 向下取整(floor)的行为进行了变更
前者主要是在64位系统上生效,如果是32位系统,则默认为32位的限制。
echo PHP_INT_MAX; // 输出 9223372036854775807
后者修改的是向下取整的方式。以前PHP使用的是Rounding mode,但是在PHP7中修改为使用IEEE 754的结果值。
echo floor(-4.3); // 输出-5
字符串处理
在PHP7中,字符串处理方面做出了如下修改:
- 增加了utf8_函数,用于代替mb_函数
- 增加了/$e修饰符,用于支持unicode
- 修改了字符串的比较方式
第一个修改主要是为了支持更好的Unicode字符集类型。
$str = '中国china';
echo utf8_strlen($str); // 输出8(中文字符占3个长度)
第二个修改是用于支持Unicode字符集在正则表达式中的使用。可以将正则表达式声明为UTF-8编码。下面例子中,“/u”表示使用Unicode编码:
preg_match('/\p{Han}+/u', '中国互联网', $matches);
print_r($matches); // 输出 ['中国']
第三个修改主要是修改字符串函数的比较方式。在PHP7中,大多数字符串函数都会将比较方法修改为基于Unicode码点数的比较。这可以避免一些在以前版本中会出现的比较错误。
var_dump('a' == 'à'); // 输出 false
echo strcmp('a', 'à'); // 输出 不为0的值
以上就是PHP7参数、整形及字符串处理机制修改的详细攻略及含有示例说明的分析。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php7 参数、整形及字符串处理机制修改实例分析 - Python技术站