php 8.0 是php語言的一次主版本更新。它包含很多新特性及優化,包括具名引數、聯合型別、註解、建構函式屬性提公升、match表示式、空指標安全運算子、jit,以及型別系統、錯誤處理和一致性方面的改進。
php 8 引入了兩套jit編譯引擎:
htmlspecialchars($string, ent_compat | ent_html401, 'utf-8', false);
htmlspecialchars($string, double_encode: false);
替代了phpdoc註解的寫法,成為php原生語法。
class postscontroller
", methods=)
*/public function get($id)
}
class postscontroller
", methods: ["get"])]
public function get($id)
}
定義和初始化類屬性時,減少大量樣板**。
class point
}
class point
}
替代了phpdoc註解的寫法,現在可以原生語法宣告聯合型別,且會在執行時執行相應驗證。
class number
}new number('nan'); // ok
class number
}new number('nan'); // typeerror
match 與 switch 類似,相比有如下特點:
switch (8.0)
echo $result;
//> oh no!
echo match (8.0) ;
//> this is what i expected
使用新的空指標安全運算子,可以使用鏈式呼叫了,不再需要用以前的null條件判斷。在鏈式寫法中的某一級元素為null時,整個鏈式執行終止並返回null。
$country = null;
if ($session !== null)
}}
$country = $session?->user?->getaddress()?->country;
當乙個數值與另乙個字串格式的數值進行比較時,php 8 採用數值比較;否則,將該數值轉換為字串進行字串比較。
0 == 'foobar' // true
0 == 'foobar' // false
更多的內部函式其引數驗證失敗時會丟擲error異常。
strlen(); // warning: strlen() expects parameter 1 to be string, array given
array_chunk(, -1); // warning: array_chunk(): size parameter expected to be greater than 0
strlen(); // typeerror: strlen(): argument #1 ($str) must be of type string, array given
array_chunk(, -1); // valueerror: array_chunk(): argument #2 ($length) must be greater than 0
PHP8 0的新特性
php 8.0 是 php 語言的乙個主版本更新。它包含了很多新功能與優化項,包括命名引數 聯合型別 註解 構造器屬性提公升 match 表示式 nullsafe 運算子 jit,並改進了型別系統 錯誤處理 語法一致性。php 7htmlspecialchars string ent compat ...
php8 0 編譯安裝以及開啟 JIT
使用centos7.5作為環境 安裝相關依賴 yum install libxml2 libxml2 devel openssl openssl devel bzip2 bzip2 devel libcurl libcurl devel libjpeg libjpeg devel libpng li...
MySQL 8 0的新特性(二)
8.0 版本提供對地形的支援,其中包括了對空間參照系的資料來源資訊的支援,srs aware spatial資料型別,空間索引,空間函式。總而言之,8.0版本可以理解地球表面的經緯度資訊,而且可以在任意受支援的5000個空間參照系中計算地球上任意兩點之間的距離。st spatial referenc...