這篇文章主要介紹了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行為。
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;
}
}
支持
function alwaysReturnsFalse(): false {}
function alwaysReturnsNull(): null {}
function alwaysReturnsTrue(): true {}
其中
readonly class User {
public string $username;
public string $uid;
}
所有的屬性都會(huì)自動(dòng)聲明城
在
在
trait Foo
{
public const CONSTANT = 1;
}
class Bar
{
use Foo;
}
var_dump(Bar::CONSTANT); // 1
var_dump(Foo::CONSTANT); // Error
我們經(jīng)常會(huì)在參數(shù)或?qū)傩灾卸x密碼、秘鑰或其他敏感信息。當(dāng)
比如下面的例子:
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) {}
}
}
}
解析
將
ini_parse_quantity('256M'); // 268435456
curl_upkeep
在
檢索密碼長(zhǎng)度:openssl_cipher_key_length
在
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也帶來(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
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。
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
關(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)