首页 > 编程 > PHP > 正文

PHP7新特性 简要笔记

2019-11-06 08:05:49
字体:
来源:转载
供稿:网友

php7除了在解析方面做了深度优化之外,还在语法用法上有了新功能新特性,参考PHP手册,做了简要笔记;

1.指定标量类型(指定函数参数类型)

<?php// Coercive modefunction sumOfInts(int ...$ints) //省略号代表传入多个参数并存储在ints容器中{ return array_sum($ints);}var_dump(sumOfInts(2, '3', 4.1));

2.指定返回值类型

function foo(int $int ):int{ return $int;}

3.严格模式

declare(strict_types=1);

该模式就是当函数输入输出类型被匹配时,需要严格输入输出相应类型的数据,否则报错;

4.NULL合并运算符

<?php//小于PHP7版本isset($tmp['key'])?$tmp['key']:'nothing';//现在版本$tmp['key]??'nothing';

5.spaceship操作符 用于取得两变量的大小比较结果

echo 1 <=> 1; // 0echo 1 <=> 2; // -1echo 2 <=> 1; // 1

6.define常量数组

define('ANIMALS', [ 'dog', 'cat', 'bird']);echo ANIMALS[1]; // outputs "cat"

7.定义匿名类

foo($tmp){ echo $tmp->name;}foo(new class ABC{public name="ABC";});

8.闭包函数的CALL方法(javascript的call用法的山寨版)

<?phpclass A {PRivate $x = 1;}// Pre PHP 7 code$getXCB = function() {return $this->x;};$getX = $getXCB->bindTo(new A, 'A'); // intermediate closureecho $getX();// PHP 7+ code$getX = function() {return $this->x;};echo $getX->call(new A);

9.Unicode codepoint 转译语法

echo "/u{9999}"; //输出香

10.USE的批量导入

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

11.生成器用法的拓展(Generator::getReturn()) 就是在生成器中使用return,使用时用过Generator::getReturn()来回去返回值,如:

<?php$gen = (function() { yield 1; yield 2; return 3;})();foreach ($gen as $val) { echo $val, PHP_EOL;}echo $gen->getReturn(), PHP_EOL;
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表