<kbd id="fugzo"></kbd>
<pre id="fugzo"></pre>
    1. <fieldset id="fugzo"><style id="fugzo"></style></fieldset>
      <center id="fugzo"></center>
    2. 哑剧盖章,电视剧折腰免费观看全集,亮剑3gp下载,秘密访客,泰剧为你着迷,古城童话,食物链无删减,大鱼海棠

      PHP7.1中有哪些重大的更新

      時(shí)間:2025-12-13 15:59:40 php語言

      PHP7.1中有哪些重大的更新

        PHP 7.1.0 帶來了大量的改進(jìn)和新功能,PHP7.1中有哪些重大的更新呢? 就跟隨百分網(wǎng)小編一起去了解下吧,想了解更多相關(guān)信息請(qǐng)持續(xù)關(guān)注我們應(yīng)屆畢業(yè)生考試網(wǎng)!

        可空類型 返回空類型 可迭代的psuedo-type 支持常量可見的類 數(shù)組解構(gòu) square 框架和在 list()中允許指定 keys 多異常類型捕獲

        可空類型

        PHP 7添加了參數(shù)類型聲明和函數(shù)返回值類型聲明,函數(shù)參數(shù)或者返回值的類型要么為指定類型要么為null。舉例如下:

        function sum(int $a, int $b): ?int{

        return $a + $b;

        }

        上述函數(shù)可以返回一個(gè)整數(shù)或一個(gè)空值,所以如果函數(shù)的邏輯中有錯(cuò)誤,將不會(huì)再返回一個(gè)空類型來報(bào)錯(cuò)。你也可以驗(yàn)證一下。

        function sum(?int $a, ?int $b): ?int{

        if ($a == null || $b == null) {        return null;

        }    return $a + $b;

        }

        要注意的是:調(diào)用沒有參數(shù)的函數(shù)將拋出異常!

        var_dump(sum(null, null)); /pic/pic/p>

        這意味著,當(dāng)他們沒有默認(rèn)值時(shí),應(yīng)該顯示指定參數(shù)。

        還有就是,在重載或?qū)崿F(xiàn)方法時(shí)不能把可空類型作為返回類型,但你可以刪除它。反之亦然!

        interface Fooable {

        function foo(): ?Fooable;}interface StrictFooable extends Fooable {

        function foo(): Fooable; /pic/p>

        function foo(): Fooable;}interface LooseFooable extends Fooable {

        function foo(): ?Fooable; /pic/p>

        解構(gòu)陣列

        當(dāng)我們解構(gòu)陣列是通常會(huì)這樣做:

        list($a, $b, $c) = [1, 2, 3];

        var_dump($a, $b, $c); /pic/p>

        但這是錯(cuò)的,因?yàn)槲覀儾荒苤付ㄦI來提取和嘗試使用索引鍵的功能

        list($a, $b, $c) = ["a" => 1, "b" => 2, "c" => 3];

        var_dump($a, $b, $c); /pic/p>

        RFC提供了更多的控制陣列的解構(gòu)。上面的代碼可以改為:

        list("a" => $a, "b" => $b, "c" => $c) = ["a" => 1, "b" => 2, "c" => 3];

        var_dump($a, $b, $c); /pic/p>

        上面的例子可以寫成:

        ["a" => $a, "b" => $b, "c" => $c] = ["a" => 1, "b" => 2, "c" => 3];

        var_dump($a, $b, $c); /pic/p>

        很酷對(duì)不對(duì)?它還適用于多維數(shù)組:

        [[$a, $b], [$c, $d]] = [[1, 2], [3, 4]];

        var_dump($a, $b, $c, $d); /pic/p>

        var_dump($b, $c); /pic/p>

        Iterable 偽類

        PHP 7.1 新引入了一個(gè)被稱為 iterable  的偽類。

        它可以被用在參數(shù)或者返回值類型中,它代表接受數(shù)組或者實(shí)現(xiàn)了 Traversable 接口的對(duì)象。以下面的代碼為例:

        /pic/p>

        var_dump($items);

        }

        dump([2, 3, 4]);

        dump(new Collection());

        array(3) {

        [0]=>

        int(2)

        [1]=>

        int(3)

        [2]=>

        int(4)

        }

        Catchable fatal error: Argument 1 passed to dump() must be of the type array, object given...

        但在這種情況下,函數(shù)不會(huì)接受一個(gè)價(jià)值,將拋出一個(gè)錯(cuò)誤。這一新的變化,讓你使用迭代來描述而不是手動(dòng)一個(gè)價(jià)值主張。

        /pic/p>

        var_dump($items);

        }

        dump([2, 3, 4]);

        dump(new Collection());

        array(3) {

        [0]=>

        int(2)

        [1]=>

        int(3)

        [2]=>

        int(4)

        }

        object(Collection)#2 (0) {}

        void返回類型

        這是我最喜歡的新功能之一。PHP 7添加了指定函數(shù)返回類型的特性,一個(gè)新的返回值類型 void 被引入。試圖去獲取一個(gè)void 方法的返回值時(shí),將被迫返回null!并且不會(huì)產(chǎn)生任何警告。

        function dump($object): void{

        var_dump($object);

        }

        返回類型聲明為 void 類型的方法要么干脆省去 return 語句,要么添加一個(gè)空的函數(shù)(return;)。

        類常量的可見性

        雖然這是個(gè)很小的變化,但是加強(qiáng)了面向?qū)ο蟮姆庋b,現(xiàn)在起支持設(shè)置類常量的可見性:

        class Post{

        protected const PUBLISHED = 1;    protected const DRAFT = 2;    protected const TRASHED = 3;    /pic/p>

        捕獲多個(gè)異常類型

        在以往的try... catch 語句中,每個(gè)catch 只能設(shè)定一個(gè)條件判斷,新的版本可以在一個(gè) catch 中設(shè)置多個(gè)條件,從而減少了需要復(fù)制的代碼。 Java 等其他語言同樣具備這種能力。以下面的代碼為例:

        /pic/p>

        } catch (UserSuspendedException $ex) {

        DB::rollBack();    return redirect()

        ->back()

        ->withInput()

        ->withErrors([$ex->getMessage()]);

        } catch (PaidMonthException $e) {

        DB::rollBack();    return redirect()

        ->back()

        ->withInput()

        ->withErrors([$ex->getMessage()]);

        }/pic/p>

        英文原文:/pic/whats-new-and-exciting-in-php-7-1/