中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

PHP 8.5 將(jiang)帶來什么 🚀

PHP 8.5 將帶來什么 ??

PHP 8.5 仍在開發中;首個(ge)正式版本計劃于 2025 年(nian) 11 月 20 日(ri)發布(bu)。如果你想嘗試,nightly tarballs 和 Docker 鏡像(php:8.5.0-dev)已經可用。

新特性

領域 特性
語言語法 管道操作符 |>
標準庫 array_first(), array_last(), 新的 IntlListFormatter, curl_multi_get_handles(), locale_is_right_to_left()
屬性 #[\NoDiscard] + (void) 強制轉換
核心調整 Directory 成為不透明/最終類
性能/IO 原生 Zstandard 和 Brotli 壓縮

新的語言結構

管道操作符 |>

2025 年(nian) 2 月(yue)批準,管道(dao)將左側值傳(chuan)遞給右側的可調用對象(xiang),并從左到(dao)右求值。


$result  =  "Hello World"

 |>  htmlentities(...)

 |>  str_split(...)

 |>  fn($x) => array_map(strtoupper(...), $x)

 |>  fn($x) => array_filter($x, fn ($v) => $v  !==  'O');

var_dump($result);  // ['H','E','L','L','W','R','D']

Records — 不可變值對象

record 關鍵字(RFC 正在討論中,但趨(qu)勢積極)讓你可(ke)以用幾乎零樣板代碼聲明按(an)值傳遞的(de)不可(ke)變類型。

record  Point(int  $x, int  $y);
$origin  =  &Point(0, 0); // 前導的“&”表示記錄實例化
echo  $origin->x;          // 0

構造函數屬性提升中的 final

很快你就可以將提升的屬性標記為 final,保證它們在構造后永不改變。投票已經壓倒性地支持。

class  User
{
 public  function  __construct(
final string  $id,
 public  string  $name,
    ) {}
}

常量表達式中的閉包

靜態閉包現在可以在 const、屬性(xing)參數(shu)(shu)和默認屬性(xing)/參數(shu)(shu)值中(zhong)使用 — 對于默認回調非常方便。已為 8.5 實現。

const  DEFAULT_FILTER  =  static  function (mixed  $v):  bool {
 return  !empty($v);
};

#[\NoDiscard] + (void) 強制轉換

標記必須消耗其返回值的函數;如果你真的想忽略它,可以將調用強制轉換為 (void) 以消除警告。

#[\NoDiscard('You probably meant to use this')]
function  compute():  array
{
 return [...];
}
(void) compute(); // 顯式丟棄 – 無警告

標準庫新增內容

? 新的 API 為什么你會關心
array_first() / array_last() 在 O(1) 時間內獲取第一個或最后一個元素,而不觸及內部指針。
curl_multi_get_handles() 枚舉 multi-curl 資源中的所有句柄。
IntlListFormatter 支持 i18n 的人性化列表(例如“apples, pears and peaches”)。
locale_is_right_to_left() 無需 ICU 查找的快速 RTL 檢查。
php --ini=diff CLI 標志,僅打印你調整過的 INI 條目。
PHP_BUILD_DATE 精確的構建時間戳嵌入到二進制文件中。
$items  = ['??','??','??'];
echo  array_first($items); // ??
echo  array_last($items);  // ??

引擎和核心庫調整

Directory 現在是不透明的

你不能再 new Directory() 或克隆/序列化它;將(jiang)其視(shi)為真正(zheng)的資源對象。

$dir  =  dir('.');

clone  $dir;        // 致命錯誤

new  Directory(); // 致命錯誤

內置現代壓縮

ZstandardBrotli 加入 zlib,為你(ni)提供快速、原生的 Web 壓縮。

$zip  =  zstd_compress($data);

$plain  =  brotli_uncompress($zip);

棄用內容

所有 MHASH_* 常量都將被棄用。

隨著 8.5 的穩定,預計會有(you)一輪新的小(xiao)邊緣案例清理。

總結

PHP 8.5 不是(shi)一(yi)個(ge)革命(ming)性(xing)的(de)版本,但它帶來了大量的(de)人體工程學(xue)改進:

  • 函數式管道,使數據流更清晰
  • 無樣板代碼的值對象
  • 更安全的 API,引導你遠離陷阱
  • 以及許多小而強大的生活質量提升

引用

  • ?? 管道操作符 RFC —
  • ?? Records RFC —
  • ?? PHP.Watch 上的完整 8.5 變更日志 —

posted @ 2025-06-10 10:01  JaguarJack  閱讀(153)  評論(0)    收藏  舉報