1: 增加了太空船
PHP7 引入的一个新功能,在 PHP7 中,它用来比较两个表达式:当第一个表达式分别小于、等于或大于第二个表达式时,它返回的值为:-1、0 或 1。
PHP7 太空船操作符的表达式为:$z = $x <=> $y
;
上述代码所表达的意思如下:
如果 $x > $y
,则 $z
的值为 1;
如果 $x == $y
,则 $z
的值为 0;
如果 $x < $y
,则 $z
的值为 -1;
2:类型声明
php7为了提高执行效率,在函数方法中增加了标量类型(布尔、浮点、整型、字符)的申明特性,节省了对数据类型的检测。
php7 仍然支持弱类型检测,即仍然可以使用原来的方式声明形参。
标量声明有两种特性:
强制模式(默认):体现在类型转换上
严格模式
模式声明:declare(strict_types=1);
默认情况值为0,值为1代表为严格校验的模式
3:PHP 7 新增加的 NULL 合并运算符(??)是用于执行isset()检测的三元运算的快捷方式。
NULL 合并运算符会判断变量是否存在且值不为NULL,如果是,它就会返回自身的值,否则返回它的第二个操作数。
以前我们这样写三元运算符:
$site = isset($_GET['site']) ? $_GET['site'] : '菜鸟教程';
现在我们可以直接这样写:
$site = $_GET['site'] ?? '菜鸟教程';
4 php7 可以define 定义常量数组了
利用php7的define定义数组
define('language', ['php', 'java', 'jsp', 'asp']);
echo language[1];
5 namespace批量导入
//php之前
use Space\ClassA; use Space\ClassB; use Space\ClassC C;
//php7 后
use Space\{ClassA,ClassB,ClassC as C};
6
class A {private $x = 1;}
// PHP 5 代码
$getXCB = function() {return $this->x;};
$getX = $getXCB->bindTo(new A, 'A');
// intermediate closure echo $getX();
// PHP 7+ 代码
$getX = function() {return $this->x;};
echo $getX->call(new A);
6 新增intdiv函数
7 list() 简略([])写法
php7之前
list($a,$b,$c) = [1,2,3];
php7
[$a,$b,$c] = [1,2,3];