溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

PHP7.3版本有什么新特性

發(fā)布時間:2021-09-03 19:29:51 來源:億速云 閱讀:139 作者:chen 欄目:編程語言

這篇文章主要介紹“PHP7.3版本有什么新特性”,在日常操作中,相信很多人在PHP7.3版本有什么新特性問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”PHP7.3版本有什么新特性”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

is_countable rfc

當(dāng)計數(shù)不可數(shù)的對象時,PHP 7.2添加了警告。 is_countable函數(shù)可以幫助防止此警告。

$count = is_countable($variable) ? count($variable) : null;

array_key_first  和 array_key_last rfc

這兩個函數(shù)基本上可以按照名稱所說的進行操作。

$array = ['a' => '…','b' => '…','c' => '…',
];

array_key_first($array); // 'a'array_key_last($array); // 'c'

原始RFC還提出了 array_value_first  array_value_last , 但是這些遭到了大多數(shù)人的反對。

另一個 array_first  和  array_last 被返回一個元組 [$key => $value],目前,我們只有兩個函數(shù)來獲取數(shù)組的第一個鍵和最后一個鍵。

靈活的Heredoc語法 rfc

Heredoc對于較大的字符串可能是有用的工具,盡管過去它們有縮進的怪癖。

// Instead of this:$query = <<<SQL
SELECT * 
FROM `table`
WHERE `column` = true;
SQL;// You can do this:$query = <<<SQL
    SELECT * 
    FROM `table`
    WHERE `column` = true;
    SQL;

在已經(jīng)嵌套的上下文中使用Heredoc時,這特別有用。

結(jié)束標(biāo)記前面的空白將在所有行上被忽略。

重要說明:由于此更改,一些現(xiàn)有的Heredocs可能會中斷, 當(dāng)他們在體內(nèi)使用相同的結(jié)束標(biāo)記時。

$str = <<<FOO
abcdefgFOO
FOO;// Parse error: Invalid body indentation level in PHP 7.3

函數(shù)調(diào)用中的尾部逗號 rfc

數(shù)組已經(jīng)可以實現(xiàn)的函數(shù),現(xiàn)在也可以通過函數(shù)調(diào)用來實現(xiàn)。 注意,在函數(shù)定義中是不可能的!

$compacted = compact('posts','units',
);

更友好的錯誤信息

TypeErrors用于整數(shù)和布爾值,用于打印其全名, 它已更改為 int  bool ,以匹配代碼中的類型提示。

Argument 1 passed to foo() must be of the type int/bool

與PHP 7.2相比:

Argument 1 passed to foo() must be of the type 
integer/boolean

JosnException異常 rfc

以前,JSON解析錯誤調(diào)試起來很麻煩。 JSON函數(shù)現(xiàn)在接受一個額外的選項,使它們在解析錯誤時引發(fā)異常。 顯然,此更改添加了一個新的異常: JsonException 。

json_encode($data, JSON_THROW_ON_ERROR);

json_decode("invalid json", null, 512, JSON_THROW_ON_ERROR);// Throws JsonException

雖然此函數(shù)僅在新添加的選項中可用, 有可能它將成為將來版本中的默認行為。

列表引用分配 rfc

list()及其速記的 [] 語法現(xiàn)在支持引用。

$array = [1, 2];list($a, &$b) = $array;

$b = 3;// $array = [1, 3];

Compact未定義變量 rfc

傳遞給 compact 的未定義變量將被通知,并且之前會被忽略。

$a = 'foo';

compact('a', 'b'); 

// Notice: compact(): Undefined variable: b

Same site cookie rfc

此更改不僅添加了新參數(shù), 它也以不變的方式更改了 setcookie  setrawcookie  session_set_cookie_params 函數(shù)的工作方式。

它們現(xiàn)在不再支持已經(jīng)龐大的函數(shù),而是支持一系列選項,同時仍向后兼容。 一個例子:

bool setcookie(
    string $name 
    [, string $value = "" 
    [, int $expire = 0 
    [, string $path = "" 
    [, string $domain = "" 
    [, bool $secure = false 
    [, bool $httponly = false ]]]]]] 
)

bool setcookie ( 
    string $name 
    [, string $value = "" 
    [, int $expire = 0 
    [, array $options ]]] 
)

// Both ways work.

字符串搜索函數(shù) README

您不能再將非字符串針傳遞給字符串搜索函數(shù)。 這些是受影響的函數(shù):

strpos()
strrpos()
stripos()
strripos()
strstr()
strchr()
strrchr()
stristr()

到此,關(guān)于“PHP7.3版本有什么新特性”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI