php 8.0 是 php 語言的乙個主版本更新。
它包含了很多新功能與優化項, 包括命名引數、聯合型別、註解、構造器屬性提公升、match 表示式、nullsafe運算子、jit,並改進了型別系統、錯誤處理、語法一致性。
php
7htmlspecialchars
($string
,ent_compat
|ent_html401
,'utf-8'
,false
);
php
8htmlspecialchars
($string
, double_encode:
false
);
現在可以用 php 原生語法來使用結構化的元資料,而非 phpdoc 宣告。
php
7class
postscontroller
", methods=)
*/public
function
get(
$id)
}
php
8class
postscontroller
", methods: ["get"])]
public
function
get(
$id)
}
更少的樣板**來定義並初始化屬性。
php
7class
point
}
php
8class
point
}
相對於以前的 phpdoc 宣告型別的組合, 現在可以用原生支援的聯合型別宣告取而代之,可在實際執行中驗證。
php
7class
number
}new
number
('nan');
// ok
php
8class
number
}new
number
('nan');
// typeerror
新的 match 類似於 switch,並具有以下功能:
php
7switch
(8.0
)echo
$result
;//> oh no!
php
8echo match (
8.0)
;//> this is what i expected
現在可以用新的 nullsafe 運算子鏈式呼叫,而不需要條件檢查 null。 如果鏈條中的乙個元素失敗了,整個鏈條會中止並認定為 null。
php
7$country
=null;if
($session
!==null)}
}
php
8$country
=$session?-
>
user?-
>
getaddress()
?->
country
;
php 8 比較數字字串(numeric string)時,會按數字進行比較。 不是數字字串時,將數字轉化為字串,按字串比較。
php70
=='foobar'
// true
php80
=='foobar'
// false
現在大多數內部函式在引數驗證失敗時丟擲 error 級異常。
php
7strlen([
]);// warning: strlen() expects parameter 1 to be string, array given
array_chunk([
],-1
);// warning: array_chunk(): size parameter expected to be greater than 0
php
8strlen([
]);// 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
php 8 引入了兩個即時編譯引擎。 tracing jit 在兩個中更有潛力,它在綜合基準測試中顯示了三倍的效能, 並在某些長時間執行的程式中顯示了 1.5-2 倍的效能改進。 典型的應用效能則和 php 7.4 不相上下。
PHP 8 0 帶來的新特性
php 8.0 是php語言的一次主版本更新。它包含很多新特性及優化,包括具名引數 聯合型別 註解 建構函式屬性提公升 match表示式 空指標安全運算子 jit,以及型別系統 錯誤處理和一致性方面的改進。php 8 引入了兩套jit編譯引擎 htmlspecialchars string,ent ...
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...