PHP语言结构-PHP7的新变化
熊孩纸
阅读:138
2022-05-23 18:05:36
评论:0
PHP语言结构-PHP7的新变化
一、声明函数的返回值的类型
在PHP7中,可以声明函数的返回值的数据类型,包括int,float,bool,string,intterfaces,array和callable。
<?php
declare(strict_types=1);
function a(int $b): int //声明类型为int
{
return $b;
}
print(a(1)); //这里必须是int,否则会抛出错误
?>
//返回结果为:1
二、新增intdiv()函数
整除函数 intdiv()
intdiv(a,b);
返回值为a除以b的值并取整。
<?php
echo intdiv(10,3),"<br>";
echo intdiv(11,2),"<br>";
?>
三、括号在变量或函数中的变化
在PHP7中使用括号吧变量或者函数括起来将不再起作用。
<?php
function getArray()
{
return [100, 200, 300,400];
}
$last = array_pop(getArray());
//所有版本的 PHP 在这里将会报错
$last = array_pop((getArray()));
//PHP5 或者更早的版本将不会报错
?>
四、参数处理机制的修改
- 不再支持重复参数命名:比如下面的代码执行的时候会报错:
public function ff ($a,$b,$b){
//
}
- func_get_arg()和func_get_args()函数的调整
在PHP 7中,func_get_arg()和func_get_args()两个函数将返回参数当前的值,而不是传入时的值。当前的值有可能会被修改,所以当前值和传入时的值不一定相同。
<?php
function ff($x)
{
$x++;
var_dump(func_get_arg(0));
var_dump(func_get_args(0));
}
ff(100);
phpinfo();
?>
php7运行结果:
php5运行结果:
- 在打印异常回溯信息时将显示修改后的值:
这个调整不会影响代码的运行,不过在调试的时候需要注意这个变化。
<?php
function foo($x) {
$x = 42; throw new Exception;
}
foo("string");
phpinfo();
?>
php7中运行:
php5中运行:
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。