国产网曝门99视频在线看_免费看片a级毛片免费看_4hu四虎永久在线观看_高清无套内精线观看456_国产欧美亚洲日韩久久福利_av在线无码观看另类重口_欧美精品一二三区较多收藏_欧美老熟妇伦视频_婷婷六月综合激情_最新国产成人野战在线观看


php8.2正式版在2022年12月8日正式發(fā)布了

    時間: 瀏覽:1749次  原文出處:PHP武器庫
PHP8.2是PHP語言現(xiàn)代化進程中的一個重要的里程碑。除了令人興奮地新特性和改進之外,PHP8.2還簡化了語言,取消了對動態(tài)類屬性的支持,在遇到某些非最優(yōu)的ini配置時發(fā)出警

PHP8.2是PHP語言現(xiàn)代化進程中的一個重要的里程碑。除了令人興奮地新特性和改進之外,php8.2還簡化了語言,取消了對動態(tài)類屬性的支持,在遇到某些非最優(yōu)的ini配置時發(fā)出警告,并修復了一些影響PHP數(shù)組排序和某些類型的字符串轉(zhuǎn)換/編碼操作的遺留PHP行為。


系統(tǒng)改進

PHP8.2解決了PHP類型系統(tǒng)的幾個缺點和限制,允許PHP應用采用更好的類型安全。包括添加了true類型,允許null和false作為獨立的類型使用,并支持DNF類型(泛型解析)。

PHP8.2支持分離范式類型,現(xiàn)在可以進行組合聯(lián)合類型和交際類型,這可以定義聲明精確而富有表現(xiàn)力的參數(shù)、返回值屬性。

php8.2之前

class Foo {
    public function bar(mixed $entity) {
        if ((($entity instanceof A) && ($entity instanceof B)) || ($entity === null)) {
            return $entity;
        }

        throw new Exception('Invalid entity');
    }
}

現(xiàn)在

class Foo {
    public function bar((A&B)|null $entity) {
        return $entity;
    }
}

支持true和false作為獨立的類型,如果bool始終相同的時候可以用它來聲明。

function alwaysReturnsFalse(): false {}

function alwaysReturnsNull(): null {}

function alwaysReturnsTrue(): true {}

其中null的類型在之前的版本中就可以在聯(lián)合類型聲明中使用,現(xiàn)在可以獨立使用了。

只讀類

PHP8.1增加了一個readonly的屬性聲明。一個readonly的屬性只能設置一次,并且PHP會阻止任何作用域內(nèi)的修改。

PHP8.2對readonly聲明進行更進一步的使用,可以將類聲明為readonly。當一個類被聲明為readonly,它的所有屬性都會自動聲明readonly。此外,這個類不能使用動態(tài)屬性,以確保所有的屬性都是有定義的。

readonly class User {
    public string $username;
    public string $uid;
}

所有的屬性都會自動聲明城readonly。

新的隨機數(shù)擴展

在PHP的歷史發(fā)展中,它支持各種各樣的隨機數(shù)生成器,他們有不同程度的性能和不同的用例,并且適合安全應用程序。PHP8.2更進一步,將所有與隨機數(shù)相關的功能重構(gòu)為一個名為random的擴展。新的擴展不會破壞任何現(xiàn)有的接口使用,因此現(xiàn)有的rand,mt_rand函數(shù)將繼續(xù)工作,不需要任何更改。它還提供了一個對象接口,用可插拔的體系生成隨機數(shù),因此很容易模擬隨機數(shù)生成器并提供新的隨機數(shù)生成器,從而市PHP應用程序安全且易于測試。

trait常量

在PHP8.2中,可以在trait中聲明常量。trait不能直接訪問,但當類使用trait時,這些常量就變成了類的常量。

trait Foo
{
    public const CONSTANT = 1;
}

class Bar
{
    use Foo;
}

var_dump(Bar::CONSTANT); // 1
var_dump(Foo::CONSTANT); // Error

敏感參數(shù)支持

PHP8.2新增了一個內(nèi)置參數(shù)屬性命名:#[\SensitiveParameter]。能夠使PHP在堆棧跟蹤和錯誤消息中隱藏掉實際值。

我們經(jīng)常會在參數(shù)或?qū)傩灾卸x密碼、秘鑰或其他敏感信息。當PHP發(fā)生錯誤時,這些值會被記錄下來。顯示到屏幕上或者記錄到日志中。這樣人們就能通過這些方式得到敏感數(shù)據(jù)。

比如下面的例子:

function passwordHash(#[\SensitiveParameter] string $password)  {

       debug_print_backtrace();

 }

 passwordHash('hunter2');

打印的內(nèi)容如下:

array(1) {

[0]=> array(4) {

  ["file"]=> string(38) "..."

  ["line"]=> int(9)

  ["function"]=> string(3) "foo"

  ["args"]=> array(1) {

     // [0]=> string(38) "hunter2" 這一行不會被打印出來

     [0]=> object(SensitiveParameterValue)#1 (0) {}

  }
 }
}

hunter2不會被打印出來。

新的函數(shù)和類

解析INI數(shù)量值:ini_parse_quantity

將PHP ini值識別成字節(jié)。

ini_parse_quantity('256M'); // 268435456

curl維持活動:curl_upkeep

在PHP8.2中,curl擴展會觸發(fā)底層curl庫來運行必要任務,以保持curl連接存活。最常見的用法就是定期調(diào)用curl_upkeep來實現(xiàn)http持久連接(keep-alive)。

檢索密碼長度openssl_cipher_key_length

在PHP8.2 OpenSSL中,有一個名為openssl_cipher_key_length的函數(shù),能夠接受任何支持的密碼所需的秘鑰長度,在之前需要硬編碼才能實現(xiàn):

openssl_cipher_key_length("CHACHA20-POLY1305"); // 32
openssl_cipher_key_length("AES-128-GCM"); // 16
openssl_cipher_key_length("AES-256-GCM"); // 32

重置記錄的峰值內(nèi)存使用量:memory_reset_peak_usage

這對于多次調(diào)用或迭代調(diào)用時很有用。

PHP8.2中的棄用

PHP8.2也帶來了相當一部分的棄用。當語法、函數(shù)和特性被棄用時,PHP會發(fā)起一個棄用通知,該通知不應該中斷PHP程序,但會被記錄到錯誤日志中。

注意:PHP8.0以后,PHP的默認錯誤報告行為是E_ALL

已棄用動態(tài)屬性

PHP8.2中最值得注意的棄用之一就是棄用動態(tài)屬性。如果一個類屬性沒有聲明就被調(diào)用或賦值,就會退出程序。

class User {
    public int $uid;
}

$user = new User();
$user->name = 'Foo';

這個可能會影響到很多的的PHP遺留程序,推薦的修復方法是在類型中聲明屬性。

對此也有例外用法,比如stdClass和它的子類將正常使用,__get和__set魔術方法將正常使用,或者聲明#AllowDynamicproperties。

其他一些棄用可以關注本站其他文章

《PHP8.2中字串變量解析的新用法》https://phpreturn.com/index/a628de16a2adf8.html

安裝和升級到PHP8.2

PHP 8.2現(xiàn)在可以在所有常規(guī)源代碼中下載/安裝:

  • windows:編譯后的二進制文件可在windows.php.net
  • Ubuntu/Debian: PHP 8.2可用ondrej/phpPPA
  • Fedora/RHEL/centos/Alma/Rocky:可以在Remi的源中獲取
  • Mac OS: PHP 8.2可以通過Homebrew安裝shivammathur/homebrew-php利用.
  • Docker:可以通過8.2*版本獲取PHP 8.2


更詳細的變動,作者將持續(xù)跟進發(fā)布。歡迎關注收藏。



本文地址:http://003188.cn/php82.html
碼字不易,打個賞唄
楊澤業(yè)感謝你的支持!

猜你喜歡

截止2024年11月6日,未注冊的ol尾5字母.com域名列表,共10456個

截止2024年11月6日,未注冊的ol尾5字母.com域名列表,共10456個

2024-11-07  分類:行業(yè)資訊  瀏覽:4次


2024年11月9日刪除的部分cn和com.cn域名列表cn

站長在線導讀:2024年11月9日刪除的部分cn和com.cn域名列表:一、4位以內(nèi)純數(shù)字cn和com.cn域名。二、3字母以內(nèi)cn和com.cn域名。三、4字母cn和com.cn域名。四、5聲母cn和com.cn域名。

2024-11-07  分類:CN刪除域名  瀏覽:6次


截止2024年11月6日,未注冊的xx尾5聲母.com域名列表,共5301個

截止2024年11月6日,未注冊的xx尾5聲母.com域名列表,共5301個

2024-11-06  分類:行業(yè)資訊  瀏覽:13次


截止2024年11月6日,未注冊的zx尾5聲母.com域名列表,共5251個

截止2024年11月6日,未注冊的zx尾5聲母.com域名列表,共5251個

2024-11-06  分類:行業(yè)資訊  瀏覽:15次


2024年11月8日刪除的部分cn和com.cn域名列表cn

站長在線導讀:2024年11月8日刪除的部分cn和com.cn域名列表:一、4位以內(nèi)純數(shù)字cn和com.cn域名。二、3字母以內(nèi)cn和com.cn域名。三、4字母cn和com.cn域名。四、5聲母cn和com.cn域名。

2024-11-06  分類:CN刪除域名  瀏覽:12次


給你的服務器添加一個MySQL守護的執(zhí)行任務,讓MySQL出現(xiàn)問題的時候自動重啟

今天下午我在登錄百度統(tǒng)計的時候,發(fā)現(xiàn)我的文案網(wǎng)(wenan.wang)的統(tǒng)計為0,我就猜到了,該網(wǎng)站打不開了,登錄那臺服務器的寶塔管理面版,發(fā)現(xiàn)該服務器的MySQL服務沒有啟動

2024-11-05  分類:建站知識  瀏覽:15次


2024年11月7日刪除的部分cn和com.cn域名列表cn

站長在線導讀:2024年11月7日刪除的部分cn和com.cn域名列表:一、4位以內(nèi)純數(shù)字cn和com.cn域名。二、3字母以內(nèi)cn和com.cn域名。三、4字母cn和com.cn域名。四、5聲母cn和com.cn域名。

2024-11-05  分類:CN刪除域名  瀏覽:99次


2024年11月6日刪除的部分cn和com.cn域名列表cn

站長在線導讀:2024年11月6日刪除的部分cn和com.cn域名列表:一、4位以內(nèi)純數(shù)字cn和com.cn域名。二、3字母以內(nèi)cn和com.cn域名。三、4字母cn和com.cn域名。四、5聲母cn和com.cn域名。

2024-11-04  分類:CN刪除域名  瀏覽:25次


2024年11月5日刪除的部分cn和com.cn域名列表cn

站長在線導讀:2024年11月5日刪除的部分cn和com.cn域名列表:一、4位以內(nèi)純數(shù)字cn和com.cn域名。二、3字母以內(nèi)cn和com.cn域名。三、4字母cn和com.cn域名。四、5聲母cn和com.cn域名。

2024-11-03  分類:CN刪除域名  瀏覽:41次


2024年11月4日刪除的部分cn和com.cn域名列表cn

站長在線導讀:2024年11月4日刪除的部分cn和com.cn域名列表:一、4位以內(nèi)純數(shù)字cn和com.cn域名。二、3字母以內(nèi)cn和com.cn域名。三、4字母cn和com.cn域名。四、5字母cn和com.cn域名。

2024-11-02  分類:CN刪除域名  瀏覽:42次