PHP语言结构-PHP7的新变化

熊孩纸 阅读:138 2022-05-23 18:05:36 评论:0

一、声明函数的返回值的类型

在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 或者更早的版本将不会报错 
?> 

四、参数处理机制的修改

  1. 不再支持重复参数命名:比如下面的代码执行的时候会报错:
public function ff ($a,$b,$b){
   
     
// 
} 
  1. 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运行结果:
在这里插入图片描述

  1. 在打印异常回溯信息时将显示修改后的值:

这个调整不会影响代码的运行,不过在调试的时候需要注意这个变化。

<?php 
function foo($x)  {
   
         
 $x = 42;     throw new Exception;  
}  
foo("string");  
phpinfo(); 
?> 

php7中运行:在这里插入图片描述
php5中运行:
在这里插入图片描述


标签:PHP
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

搜索
排行榜
关注我们

一个IT知识分享的公众号