Lam's blog

知之爲知之,不知爲不知


  • 首頁

  • 歸檔

  • 關於我

  • 搜索

PHP8.1一些新特性介紹之一純交集類型

時間: 2021-11-17   |   分類: PHP   | 字數: 437 字 | 閱讀: 1分鐘 | 閱讀次數:

PHP8.1將於2021年11月25日發布,該版本增加了一些新特性,其中有幾個特性需要留意下。

  • 全新的 enum 類型(New Enum Types)
  • 只讀屬性(Readonly Properties)
  • 在初始化時合作new (Using “new” in initializers)
  • 純交集類型(Pure intersection types)

交集類型是PHP8.1新增加的類型特性,它提示對應的值必須添加所賦予的一個或多個類型約束。是不是與聯合類型(union type)有點相似?聯合類型是or,而交集類型是and。

基本語法: 交集類型的語法與聯合類型語法類似。

class DemoClass {
 
    public Countable|Stringable $Union;
 
    public Countable&Stringable $Intersection;
 
}

在上面例子中,$Union變量可以接受Countable或者Stringable的任意值,而$Intersection必須同時滿足Countable和Stringable限制類型的值,如果不滿足條件,會拋出TypeError異常。

交集類型可以應用於屬性定義、函數參數和返回值。

交集類型只能應用於接口和類中,這點與聯合類型不同。像int&string這種純交集是沒有意義的,因為這種不可能滿足條件。混合類型(mixed)也不是允許。

#PHP#

聲明:PHP8.1一些新特性介紹之一純交集類型

鏈接:https://www.lamsir.cc/post/php-8-1-some-new-feature-intersection-types/

作者:Lam Sir

聲明: 本博客文章除特別聲明外,均采用 CC BY-NC-SA 3.0許可協議,轉載請註明出處!

創作實屬不易,如有幫助,那就打賞博主些許茶錢吧 ^_^
ETH Pay

ERC20-USDT

使用Python已知平均值求隨機數
PHP8.1一些新特性介紹之一初始化器
Lam Sir

Lam Sir

Live your life...

30 日誌
5 分類
11 標簽
標簽雲
  • Python
  • Php
  • Javascript
  • Mysql
  • Video
  • Wordpress
  • API
  • Laravel
  • MAC
  • Node.Js
© 2020 - 2022 Lam's blog
0%