一、php7的新特性
(1)太空操作符
它是用于比较两个表达式,如$a大于、等于、小于$b时,结果返回是:1、 0 、-1
如:
echo 1<=>1;//结果是 0
echo 2<=>1;//结果是 1
echo 1<=>2;//结果是-1
(2)标量类型声明和返回值的类型声明
可以对字符串(string)、整型(int)、浮点型(float)、布尔型(bool)的参数做声明。注意:默认模式下,当传入的参数不符合声明类型时,会尝试转换类型,严格模式下,则会报错。
如:
上面开启了严格模式,但是传入的参数包含字符串,声明类型是整型,所以报错,需要将所有参数都传入整型才不会出错
下面是一个定义了返回类型为int的示例
上面示例定义了返回类型为int,返回的值类型也是int,所以不会报错,如果是默认模式,返回的值不是不是声明的返回类型,php会尝试转换成声明类型,如果不能转换就会波报错。
后面的php7.1还对返回值的声明做了扩充,可以定义返回值为void,任何模式下,函数中有 return 返回都会直接报错。注意:参数类型时不能定义为void。
上面会犯错,因为函数使用了return返回
另外,php7.1还加了可空类型的支持,在参数或者返回类型前加上?,表示返回值要么是null,要么是声明的类型
(3)null合并操作符“??”
用于判断,当变量存在的时候并且值不为null,返回自身的值,否则返回第二个操作数,如下:
(4)常量数组
可以通过define来定义个数组常量,在php7之前不行
(5)namespace批量导入
use Sapce\classA;
use Sapce\classB;
use Sapce\classC;
//php7之后支持如下写法
use Sapce\(ClassA,ClassB,ClassC);
(6)throwable接口
php7之前,如果代码中出现语法错误,则程序会直接终止退出,php7实现了全局throwable接口,原来的Exception和部分Error实现了该接口。这种error可以向异常一样被try/catch快捕获,Error类继承Error,可以用catch(Error $e){…}来捕获,或者可以通过注册异常处理函数(set_exception_handler())来捕获Error.
(7)Closuer::call()
php7可以通过call来暂时绑定一个闭包对象到$this对象,并调用它:
n+1;
};
echo $f->call(new T);
//输出 2
(8)intdiv函数
增加了一个新的整除函数intdiv()
(9)list的括号写法
使用list来实现解构赋值:如下
注意:上面的简写的[]并不是数组的意思,只是list的简写形式。
处理以上介绍的这些新特性,php7还有很多其他的改变,例如foreach遍历数组时不再修改内部指针,移除了ASP和scirpt PHP标签,移除了$HTTP_RAW_POST_DATA,匿名类、类常量可见性等,大佬们可以自行尝试下。
相关文章
本站已关闭游客评论,请登录或者注册后再评论吧~