php7新特征是什么?在PHP7中由于修改了底层引擎大部分代码,以及经由历程各种体式格局进步PHP的机能,所以在PHP7中也增加了一些新的语法,这些语法的运用也能对进步机能有协助。下面给人人简朴引见一些,愿望对你们有所协助。
1、标量参数范例声明
能够运用字符串(string), 整数 (int), 浮点数 (float), 以及布尔值 (bool),来声明函数的参数范例与函数返回值;之前只支撑类名、接口、数组及Callable两种作风:强迫转换形式(默许)与严厉形式
declare(strict_types=1); function add(int $a, int $b): int { return $a+$b; } echo add(1, 2); echo add(1.5, 2.6);
php5是没法实行上面代码的,php7实行的时刻会先输出一个3和一个报错( Argument 1 passed to add() must be of the type integer, float given
);
标量范例声明 有两种形式: 强迫 (默许) 和 严厉形式。
declare(strict_types=1)
,必需放在文件的第一行实行代码,当前文件有用!
2、set_exception_handler() 不再保证收到的一定是 Exception 对象
在 PHP 7 中,许多致命毛病以及可恢复的致命毛病,都被转换为非常来处置惩罚了。 这些非常继承自 Error 类,此类完成了 Throwable 接口 (一切非常都完成了这个基本接口)。
PHP7进一步轻易开发者处置惩罚, 让开发者对顺序的掌控才能更强. 由于在默许情况下, Error会直接致使顺序中断, 而PHP7则供应捕捉而且处置惩罚的才能, 让顺序继承实行下去, 为顺序员供应更天真的挑选。
3、新增操作符“<=>”
语法:
$c = $a <=> $b
假如$a > $b, $c 的值为1
假如$a == $b, $c 的值为0
假如$a < $b, $c 的值为-1
4、新增操作符“??”
假如变量存在且值不为NULL, 它就会返回本身的值,不然返回它的第二个操作数。
//原写法 $username = isset($_GET['user]) ? $_GET['user] : 'nobody'; //如今 $username = $_GET['user'] ?? 'nobody'; 5.define() 定义常量数组 define('ARR',['a','b']); echo ARR[1];// a
6、AST: Abstract Syntax Tree, 笼统语法树
AST在PHP编译历程作为一个中间件的角色, 替代本来直接从诠释器吐出opcode的体式格局, 让诠释器(parser)和编译器(compliler)解耦, 能够削减一些Hack代码, 同时, 让完成更轻易明白和可保护.
PHP5 : PHP代码 -> Parser语法剖析 -> OPCODE -> 实行
PHP7 : PHP代码 -> Parser语法剖析 -> AST -> OPCODE -> 实行
7、匿名函数
$anonymous_func = function(){return 'function';}; echo $anonymous_func(); // 输出function
8、Unicode字符花样支撑(echo “\u{9999}”)
9、Unserialize 供应过滤特征
防备不法数据举行代码注入,供应了更平安的反序列化数据。
10、定名空间援用优化
// PHP7之前语法的写法 use FooLibrary\Bar\Baz\ClassA; use FooLibrary\Bar\Baz\ClassB; // PHP7新语法写法 use FooLibrary\Bar\Baz\{ ClassA, ClassB};
以上就是php7新特征是什么?的细致内容,更多请关注ki4网别的相干文章!