国产精品成人VA在线观看,亚洲日韩在线中文字幕综合,亚洲AV电影天堂男人的天堂,久久人人爽人人爽人人av东京热

News新聞

業(yè)界新聞動(dòng)態(tài)、技術(shù)前沿
Who are we?

您的位置:首頁(yè)      樂(lè)道系統(tǒng)FAQ      PHP 7.0新增加的特性介紹

PHP 7.0新增加的特性介紹

標(biāo)簽: 發(fā)布日期:2017-06-08 00:00:00 275

?? 運(yùn)算符(NULL 合并運(yùn)算符) 把這個(gè)放在第一個(gè)說(shuō)是因?yàn)槲矣X(jué)得它很有用。用法: $a = $_GET['a'] ?? 1;它相當(dāng)于: <?PHP $a = isset($_GET['a']) ? $_GET['a'] : 1; 我們知道三元運(yùn)算符是可以這樣用的: $a ?: 1但是這是建立在 $a 已經(jīng)定義了的前提上。

?? 運(yùn)算符(NULL 合并運(yùn)算符)

把這個(gè)放在第一個(gè)說(shuō)是因?yàn)槲矣X(jué)得它很有用。用法:

$a = $_GET['a'] ?? 1; 它相當(dāng)于:

<?php $a = isset($_GET['a']) ? $_GET['a'] : 1; 我們知道三元運(yùn)算符是可以這樣用的:

$a ?: 1 但是這是建立在 $a 已經(jīng)定義了的前提上。新增的 ?? 運(yùn)算符可以簡(jiǎn)化判斷。

1.函數(shù)返回值類型聲明

官方文檔提供的例子(注意 ... 的邊長(zhǎng)參數(shù)語(yǔ)法在 PHP 5.6 以上的版本中才有):

<?php function arraysSum(array ...$arrays): array { return array_map(function(array $array): int { return array_sum($array); }, $arrays); } print_r(arraysSum([1,2,3], [4,5,6], [7,8,9])); 從這個(gè)例子中可以看出現(xiàn)在函數(shù)(包括匿名函數(shù))都可以指定返回值的類型。

這種聲明的寫法有些類似于 Swift:

func sayHello(personName: String) -> String { let greeting = "Hello, " + personName + "!" return greeting } 這個(gè)特性可以幫助我們避免一些 PHP 的隱式類型轉(zhuǎn)換帶來(lái)的問(wèn)題。在定義一個(gè)函數(shù)之前就想好預(yù)期的結(jié)果可以避免一些不必要的錯(cuò)誤。

不過(guò)這里也有一個(gè)特點(diǎn)需要注意。PHP 7 增加了一個(gè) declare 指令:strict_types,既使用嚴(yán)格模式。

使用返回值類型聲明時(shí),如果沒(méi)有聲明為嚴(yán)格模式,如果返回值不是預(yù)期的類型,PHP 還是會(huì)對(duì)其進(jìn)行強(qiáng)制類型轉(zhuǎn)換。但是如果是嚴(yán)格模式, 則會(huì)出發(fā)一個(gè) TypeError 的 Fatal error。

強(qiáng)制模式:

<?php function foo($a) : int { return $a; } foo(1.0); 以上代碼可以正常執(zhí)行,foo 函數(shù)返回 int 1,沒(méi)有任何錯(cuò)誤。

嚴(yán)格模式:

<?php declare(strict_types=1); function foo($a) : int { return $a; } foo(1.0);