php7.0的特性

1、运算符(null合并运算符)

$a=$_GET[‘a’]??1;

相当于$a = isset($_GET['a']) ? $_GET['a'] : 1;

我们知道三元运算符是可以这样用的:$a ?: 1但是这是建立在 $a 已经定义了的前提上。

新增的 ?? 运算符可以简化判断。

2、函数返回值类型说明

这个特性可以帮助我们避免一些 PHP 的隐式类型转换带来的问题。在定义一个函数之前就想好预期的结果可以避免一些不必要的错误。

不过这里也有一个特点需要注意。PHP 7 增加了一个 declare 指令:strict_types,既使用严格模式。

使用返回值类型声明时,如果没有声明为严格模式,如果返回值不是预期的类型,PHP 还是会对其进行强制类型转换。但是如果是严格模式,则会出发一个 TypeError Fatal error

严格模式:

<?php

declare(strict_types=1);

 

function foo($a) : int

{

  return $a;

}

foo(1.0);

3、标量类型声明

Php7中函数的形参类型声明可以是标量了。

4、use批量声明

PHP 7 use 可以在一句话中声明多个类或函数或 const

use some/namespace/{ClassA, ClassB, ClassC as C};

use function some/namespace/{fn_a, fn_b, fn_c};

use const some/namespace/{ConstA, ConstB, ConstC};

 

5、再来简单说几个:

1PHP 5.3 开始有了匿名函数,现在又有了匿名类了;

2define 现在可以定义常量数组;

3、闭包( Closure)增加了一个 call 方法;

4、生成器(或者叫迭代器更合适)可以有一个最终返回值(return),也可以通过 yield from 的新语法进入一个另外一个生成器中(生成器委托)。

生成器的两个新特性(return  yield from)可以组合。具体的大家可以自行测试。

猜你喜欢

转载自19911001.iteye.com/blog/2406578