免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

PHP8.2有哪些改進(jìn)

這篇文章主要介紹了PHP8.2有哪些改進(jìn)的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇PHP8.2有哪些改進(jìn)文章都會(huì)有所收獲,下面我們一起來(lái)看看吧。

成都創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都做網(wǎng)站、成都網(wǎng)站制作、寬甸網(wǎng)絡(luò)推廣、小程序定制開(kāi)發(fā)、寬甸網(wǎng)絡(luò)營(yíng)銷、寬甸企業(yè)策劃、寬甸品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供寬甸建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:m.newbst.com

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

系統(tǒng)改進(jìn)

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

PHP8.2支持分離范式類型,現(xiàn)在可以進(jì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;
    }
}

支持truefalse作為獨(dú)立的類型,如果bool始終相同的時(shí)候可以用它來(lái)聲明。

function alwaysReturnsFalse(): false {}

function alwaysReturnsNull(): null {}

function alwaysReturnsTrue(): true {}

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

只讀類

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

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

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

所有的屬性都會(huì)自動(dòng)聲明城readonly

新的隨機(jī)數(shù)擴(kuò)展

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

trait常量

PHP8.2中,可以在trait中聲明常量。trait不能直接訪問(wèn),但當(dāng)類使用trait時(shí),這些常量就變成了類的常量。

trait Foo
{
    public const CONSTANT = 1;
}

class Bar
{
    use Foo;
}

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

敏感參數(shù)支持

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

我們經(jīng)常會(huì)在參數(shù)或?qū)傩灾卸x密碼、秘鑰或其他敏感信息。當(dāng)PHP發(fā)生錯(cuò)誤時(shí),這些值會(huì)被記錄下來(lái)。顯示到屏幕上或者記錄到日志中。這樣人們就能通過(guò)這些方式得到敏感數(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" 這一行不會(huì)被打印出來(lái)

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

  }
 }
}

hunter2不會(huì)被打印出來(lái)。

新的函數(shù)和類

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

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

ini_parse_quantity('256M'); // 268435456

curl維持活動(dòng):curl_upkeep

PHP8.2中,curl擴(kuò)展會(huì)觸發(fā)底層curl庫(kù)來(lái)運(yùn)行必要任務(wù),以保持curl連接存活。最常見(jiàn)的用法就是定期調(diào)用curl_upkeep來(lái)實(shí)現(xiàn)http持久連接(keep-alive

檢索密碼長(zhǎng)度:openssl_cipher_key_length

PHP8.2 OpenSSL中,有一個(gè)名為openssl_cipher_key_length的函數(shù),能夠接受任何支持的密碼所需的秘鑰長(zhǎng)度,在之前需要硬編碼才能實(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

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

PHP8.2中的棄用

PHP8.2也帶來(lái)了相當(dāng)一部分的棄用。當(dāng)語(yǔ)法、函數(shù)和特性被棄用時(shí),PHP會(huì)發(fā)起一個(gè)棄用通知,該通知不應(yīng)該中斷PHP程序,但會(huì)被記錄到錯(cuò)誤日志中。

注意:PHP8.0以后,PHP的默認(rèn)錯(cuò)誤報(bào)告行為是E_ALL

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

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

class User {
    public int $uid;
}

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

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

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

安裝和升級(jí)到PHP8.2

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

  • Windows:編譯后的二進(jìn)制文件可在windows.php.net

  • Ubuntu/Debian: PHP 8.2可用ondrej/phpPPA

  • Fedora/RHEL/CentOS/Alma/Rocky:可以在Remi的源中獲取

  • Mac OS: PHP 8.2可以通過(guò)Homebrew安裝shivammathur/homebrew-php利用.

  • Docker:可以通過(guò)8.2*版本獲取PHP 8.2

PHP8.2有哪些改進(jìn)

PHP8.2有哪些改進(jìn)

關(guān)于“PHP8.2有哪些改進(jìn)”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“PHP8.2有哪些改進(jìn)”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

文章名稱:PHP8.2有哪些改進(jìn)
標(biāo)題來(lái)源:http://m.newbst.com/article46/pdsgeg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)網(wǎng)站營(yíng)銷品牌網(wǎng)站設(shè)計(jì)商城網(wǎng)站App設(shè)計(jì)品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)