<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. php語言

    PHP7的五大新特性有哪些

    時間:2025-05-14 15:20:28 php語言 我要投稿
    • 相關推薦

    PHP7的五大新特性有哪些

      如果你使用的是基于 composer 和 PSR-4 的框架,這種寫法是否能成功的加載類文件?其實是可以的,composer 注冊的自動加載方法是在類被調用的時候根據類的命名空間去查找位置,這種寫法對其沒有影響。就跟隨小編去了解下吧,想了解更多相關信息請持續關注我們應屆畢業生考試網!

      1. 運算符(NULL 合并運算符)

      把這個放在第一個說是因為我覺得它很有用。用法:

      $a = $_GET['a'] ?? 1;

      它相當于:

      $a = isset($_GET['a']) ? $_GET['a'] : 1;

      我們知道三元運算符是可以這樣用的:

      $a ?: 1

      但是這是建立在 $a 已經定義了的前提上。新增的 ?? 運算符可以簡化判斷。

      2. 函數返回值類型聲明

      官方文檔提供的例子(注意 … 的邊長參數語法在 PHP 5.6 以上的版本中才有):

      從這個例子中可以看出現在函數(包括匿名函數)都可以指定返回值的類型。

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

      func sayHello(personName: String) -> String { let greeting = "Hello, " + personName + "!" return greeting }

      這個特性可以幫助我們避免一些 PHP 的隱式類型轉換帶來的問題。在定義一個函數之前就想好預期的結果可以避免一些不必要的錯誤。

      不過這里也有一個特點需要注意。PHP 7 增加了一個 declare 指令:strict_types,既使用嚴格模式。

      使用返回值類型聲明時,如果沒有聲明為嚴格模式,如果返回值不是預期的類型,PHP 還是會對其進行強制類型轉換。但是如果是嚴格模式, 則會出發一個 TypeError 的 Fatal error。

      強制模式:

      以上代碼可以正常執行,foo 函數返回 int 1,沒有任何錯誤。

      嚴格模式:

      在聲明之后,就會觸發致命錯誤。

      是不是有點類似與 js 的 strict mode?

      3. 標量類型聲明

      PHP 7 中的函數的形參類型聲明可以是標量了。在 PHP 5 中只能是類名、接口、array 或者 callable (PHP 5.4,即可以是函數,包括匿名函數),現在也可以使用 string、int、float和 bool 了。

      官方示例:

      需要注意的是上文提到的嚴格模式的問題在這里同樣適用:強制模式(默認,既強制類型轉換)下還是會對不符合預期的參數進行強制類型轉換,嚴格模式下則觸發 TypeError 的致命錯誤。

      4. use 批量聲明

      PHP 7 中 use 可以在一句話中聲明多個類或函數或 const 了:

      但還是要寫出每個類或函數或 const 的名稱(并沒有像 python 一樣的 from some import * 的方法)。

      需要留意的問題是:如果你使用的是基于 composer 和 PSR-4 的框架,這種寫法是否能成功的加載類文件?其實是可以的,composer 注冊的自動加載方法是在類被調用的時候根據類的命名空間去查找位置,這種寫法對其沒有影響。

    【PHP7的五大新特性有哪些】相關文章:

    PHP語言有哪些特性02-20

    Java語言有哪些特性06-01

    PHP語言的特性有哪些06-04

    Win8.1有哪些特性05-02

    企業優選的oa特性有哪些05-30

    計算機c語言的特性有哪些03-18

    詳解JAVA8的10大新特性07-09

    兒童的五大新稱呼03-12

    PHP7系列之異常處理08-15

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人