php7除了在解析方面做了深度優(yōu)化之外,還在語法用法上有了新功能新特性,參考PHP手冊,做了簡要筆記;
1.指定標(biāo)量類型(指定函數(shù)參數(shù)類型)
<?php// Coercive modefunction sumOfInts(int ...$ints) //省略號代表傳入多個參數(shù)并存儲在ints容器中{ return array_sum($ints);}var_dump(sumOfInts(2, '3', 4.1));2.指定返回值類型
function foo(int $int ):int{ return $int;}3.嚴(yán)格模式
declare(strict_types=1);該模式就是當(dāng)函數(shù)輸入輸出類型被匹配時,需要嚴(yán)格輸入輸出相應(yīng)類型的數(shù)據(jù),否則報錯;
4.NULL合并運算符
<?php//小于PHP7版本isset($tmp['key'])?$tmp['key']:'nothing';//現(xiàn)在版本$tmp['key]??'nothing';5.spaceship操作符 用于取得兩變量的大小比較結(jié)果
echo 1 <=> 1; // 0echo 1 <=> 2; // -1echo 2 <=> 1; // 16.define常量數(shù)組
define('ANIMALS', [ 'dog', 'cat', 'bird']);echo ANIMALS[1]; // outputs "cat"7.定義匿名類
foo($tmp){ echo $tmp->name;}foo(new class ABC{public name="ABC";});8.閉包函數(shù)的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 轉(zhuǎn)譯語法
echo "/u{9999}"; //輸出香10.USE的批量導(dǎo)入
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;新聞熱點
疑難解答