簡述PHP7 4 新特性和廢棄的功能

2022-09-26 03:42:12 字數 2404 閱讀 9543

php7.4 新特性

php7.4 上月 28 號已經發布了。又帶來了一些新特性。可以讓我們的**寫的更少了。

1. 屬性新增限定型別

www.cppcns.com<?php class user

$user = new user();

$user->age = 10;

$user->name = "張三";

//error

$user->age = "zhang";//需要傳遞int

2. 箭頭函式

這個特性基本上參考 js 的 es6 的語法。可以讓我們的**寫的更少。如果你的**有 fn 這個函式。可能會衝突

$factor = 10;

$nums = array_map(fn($n)=>$n * $factor,[1,2,3]);//[10,20,30]

//之前的寫法

$nums = array_map(function($num)use($factor),[1,2,3])

3. 有限返回型別協變與引數型別逆變

僅當使用自動載入時,才提供完全協變 / 逆變支援。在單個檔案中,只能使用非迴圈型別引用,因為所有類在被引用之前都必須可用。

<?php class a {}

class b extends a {}

class producer

}class childproducer extends producer

}?>

4. 陣列解包

使用展開運算子... 解包陣列。這個特性,應該程式設計客棧又是從 js 那吸收過來的。看例子

<?php $parts = ['apple', 'pear'];

$fruits = ['banana', 'orange', ...$parts, 'watermelon'];//['banana', 'orange', 'apple', 'pear', 'watermelon'];

//老的寫法

$fruits = array_merge(['banana', 'orange'],$parts,['watermelon']);

5. 空合併運算子賦值

<?php $array['key'] ??= computedefault();

// 老的寫法

if (!isset($array['key']))

?>

6. 數值文字分隔符

數字文字可以在數字之間包含下劃線。

<?php 6.674_083e-11; // float

299_792_458; // decimal

0xcafe_f00d; // hexadecimal

0b0101_1111; // binary

?>

7. 允許從 __tostring () 丟擲異常

現在允許從 __tostring() 引發異常,以往這會導致致命錯誤,字串轉換中現有的可恢復致命錯誤已轉換為 error 異常。

8. filter

新增 filter_validate_float

<?php filter_var(1.00,filter_validate_float);

filter.filters.validate

9. strip_tag 支援陣列

<?php strip_tags($str,['p','a','div']);

//老的寫法

strip_tags($str,"");

廢棄的特性

1. 沒有顯式括號的巢狀三元運算子

<?php 1 ? 2 : 3 ? 4 : 5; // deprecated

(1 ? 2 : 3) ? 4 : 5; // ok

1 ? 2 : (3 ? 4 : 5); // ok

?>

面試的時候,終於不用擔心問你這個結果是啥了。其實生產中,大家也不會這麼寫。

2. 花括號訪問陣列索引

<?php $arr = ["a"=>"111"];

$index = "a";

$arr//廢棄

$arr[$index];

說實話,還是第一次見到,廢棄了,說明大家不會這麼用。

3. real 和 is_real 實數

<?php $num = "";

$a = (real) $num;//廢棄

$a = (floaabfcoot) $num;

4. parent 關鍵詞在沒父類的類中使用

在沒有父類的類中使用 parent 會出現編譯錯誤。

<?php class test

}5. money_format 函式

money_format 被廢棄,使用 numberformater 替換

6. 移除的拓展

本文標題: 簡述php7.4 新特性和廢棄的功能

本文位址:

php7 4原始碼安裝

yum install y make cmake gcc gcc c autoconf automake libpng devel libjpeg devel zlib libxml2 devel ncurses devel bison libtool ltdl devel libiconv lib...

Ubuntu 編譯安裝 php7 4

sudo apt updatesudo apt install gcc y sudo apt install make y sudo apt install openssl y sudo apt install curl y sudo apt install libbz2 dev y sudo ap...

php7 4使用FFI連線C語言的動態庫

注意php7.4支援的ffi只支援對動態庫里的c介面的呼叫,並不支援c 網上看了一篇文章很受益 php ffi詳解 一種全新的php擴充套件方式。我總結的 就來自這篇文章,所以此文不能算原創了。首先,我用visual c 6.0 我就喜歡這種小的軟體 綠色版,開發了乙個dll擴充套件,開發擴充套件的...