PHP7.1的新特性概述

PHP7.1的新特性概述
一、空型

null类型主要用于参数类型声明和函数返回值声明。

这两种主要形式如下:
< PHP
函数应答():int {
返回null;
}

函数应答():int {
返回42;
}

函数表示(字符串MSG){
如果($){
回应$ MSG;
}
}
从示例中很容易理解,这意味着函数或返回值的类型是指定类型或null。

方法也可用于接口函数的定义。
< PHP
接口fooable {
函数foo(fooable $);
}
但是需要注意的是:如果函数本身定义了一个参数类型,并且没有默认值,那么即使它是空的,也不能省略它,否则会触发错误
< PHP
功能foo_nullable(酒吧美元吧){ }

foo_nullable(新巴); / /可行
foo_nullable(空); / /可行
(foo_nullable); / /不可行
但如果上述函数的参数定义为酒吧酒吧= null,然后美元,第三种方法也是可行的。因为= null实际上相当于为参数的类型和可空,空可设置默认值。

二,列表的方括号

我们知道只有通过阵列php5.4()来定义数组中的5.4个,增加一个简化的方式{ }后(略5字还是很真实)。
< PHP
5.4前/前
数组=(1, 2, 3);
数组=()= 1,b = 2,C = 3);

5.4和以后
$数组{ { 1, 2, 3 };
$数组= 1
为了扩展到另一个问题,如果我们将数组的值赋给不同的变量,我们可以通过列表来完成:
< PHP
列表($ A,$ B,$ C)=数组;
它也可以通过{ - }实现吗
< PHP
{ $ A,$ B,$ $ } = $数组;
下一个特性中提到的列表指定键:
< PHP
{ $
php7.1实现这个功能。但应注意的是:在数组不是左值{}速记是列表(缩写)。

不仅如此,新的列表()的实现不仅可以出现在一个左值,也可以使用foreach循环:
< PHP
foreach($点= > X元{X
var_dump(X,Y元);
}
但是由于问题(列表)而不能使用嵌套{ }:
< PHP
/不合法
列表({ $,$ },{ $,$ })= { 1, 2 },{ 3, 4 } };

/不合法
{列表($ A,$ B),列表($,$ D)} { { 1, 2 },{ 3, 4 } };

/合法
{ $ A、$ }、{ $ C、$ } { { 1, 2 }、{ 3, 4 } };
三。允许键在列表中指定

如上所述,可以在新列表()的实现中指定密钥:
< PHP
$数组= 1
{ $
这是一样的:
< PHP
$ a数组{'a' };
$ =数组{ B };
$ C = C数组{ };
过去的区别是,前一个列表()的实现相当于该键只能是0, 1, 2、3,不能调整顺序
< PHP
列表($,$)= { 1 = 1,2} = 2;
PHP错误的错误:未定义偏移量:0…

新的实现可以通过以下方式进行调整:
< PHP
列表($ = 1,B = 2美元)= { 1=>1,2} > 2;
与数组不同,列表不支持混合形式的键,下面的方法触发解析错误:
< PHP
错误:语法错误,…
列表($未加密,密钥= $键=数组);
在更复杂的情况下,列表还支持对复杂表单的解析:
< PHP
$ = {
{x= 1,y = 2 },
{x= 2,y = 1 }
};

列表(列表(X = $ X1,Y=> $ Y1),列表(x = y = >美元美元X2,Y2))= $点;

$ = {
第一= { 1, 2 },
第二= { 2, 1 }
};

列表(第一=列表($ X1,Y1美元),二=列表($ x2,y2美元))= $点;
以及循环的使用:
< PHP
$ = {
{x= 1,y = 2 },
{x= 2,y = 1 }
};

foreach($点列表(X = X,Y=>Y元)){
点($ x,y)
}
四、空返回类型

php7.0添加指定的函数的返回类型的特点,但不能指定返回类型为void,这个特征与7.1是一个补充:
< PHP
功能:无效should_return_nothing(){
返回1错误:一个空函数;死亡不能返回一个值。
}
以下两种情况可以核实:
< PHP
功能:无效lacks_return(){
有效
}

功能:无效returns_nothing(){
返回
}
定义返回类型空的函数不能返回值,即使返回null:
< PHP
功能:无效returns_one(){
返回1错误:一个空函数;死亡不能返回一个值。
}

功能:无效returns_null(){
返回null错误:一个空函数;死亡不能返回一个值
}
此外,空也只适用于返回类型,不能用于参数类型声明或触发错误:
< PHP
Function foobar (void $foo error: void cannot) {/ / Fatal be used as a parameter type
}
类函数中返回类型的声明不能被子类覆盖,否则将触发错误。
< PHP
类Foo
{
公共功能条():无效{
}
}

foobar扩展类Foo
{
公共功能栏(阵列):错误:{ / /致命的foobar宣言:酒吧(必须):兼容(Foo::酒吧):无效
}
}
五、类常量属性设置

当类中的常量支持被公共、私有和保护修改时,这个特性就更简单了:
< PHP
类标记{
默认值是公共的常量
const public_const = 0;

您可以自定义常数可见范围。
私人const private_const = 0;
保护建设protected_const = 0;
公共建设public_const_two = 0;

多个常量也只声明一个属性。
私有常量= 1,bar = 2;
}
此外,接口(接口)中的常量只能是公共属性:
< PHP
界面内容{
公共常量= 0;
const implicit_public = 1;
}
为了适应这种变化,反射类的实现也得到了充实。对getreflectionconstant和getreflectionconstants两方法添加到恒定的附加属性。
< PHP
class TestClass {
const test_const =测试;
}

$ obj =新reflectionclass(TestClass );
const对象->美元=美元getreflectionconstant(test_const );
把美元美元= obj -> getreflectionconstants();
六,多条件捕获

在以前的尝试中…catch语句,每个catch只能设置条件判决:
< PHP
{试
一些代码…
抓住(exceptiontype1 e){ }
/ / exceptiontype1
抓住(exceptiontype2 e){ }
/ / exceptiontype2
catch(异常){ }

}
在一个新的实现中,可以在catch中设置多于一个的条件,相当于或以判断的形式:
< PHP
{试
一些代码…
抓住(exceptiontype1 exceptiontype2 $ E | } {)
对于exceptiontype1和exceptiontype2 / /
catch(异常){ }

}
一些异常处理被简化了。

总结

以上就是本文的全部内容。希望本文的内容可以帮助你学习或使用php7.1。如果有任何疑问,你可以留言。

附录:源RFC地址

可空类型

数组赋值的方括号语法解构

允许在列表()中指定键

负字符串偏移的广义支持

void返回类型

类常数可见性修饰符

多抓

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部