php7的新特性之底层学习笔记(一)

2022-10-11 21:04:10 130 0
魁首哥

一、php7的新特性

(1)太空操作符

php7的新特性之底层学习笔记(一)

它是用于比较两个表达式,如$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,匿名类、类常量可见性等,大佬们可以自行尝试下。

收藏
分享
海报
0 条评论
130
上一篇:怀孕8个月有什么不舒服(怀孕8个月不适反应有哪些) 下一篇:thinkphp 请求

本站已关闭游客评论,请登录或者注册后再评论吧~

忘记密码?

图形验证码