PHP 8 中的混合偽型別
PHP 8 中的混合型別是一種新的內建聯合型別。混合型別等同於 array|bool|callable|int|float。混合型別與完全忽略型別並不太相似。
也就是說,程式設計人員只是忘記了編寫它。
有時,程式設計人員喜歡忽略一些特定的型別,以保持與較舊版本的相容性。
PHP 8 中的混合型別可以獲取任何型別的屬性/返回值/引數。我們可以說,它包括 PHP 中的 null、可呼叫、資源、所有類物件或所有標量型別。混合型別等同於聯合型別。
int|float|bool|string|null|array|object|callable|resource
示例:PHP 8 中的混合型別
<?php
class Student{
public mixed $studentProperty;
public function emp(mixed $emp): mixed {}
}
?>在 PHP 8 中,Mixed 是一種偽/虛擬型別。它表示 PHP 可以處理的多種型別,這意味著我們無法將變數強制轉換為 mixed,因為它沒有任何邏輯。
$foo = (mixed) $bar;
注意:gettype() 和 get_debug_type() 函式也絕不會將 mixed 作為變數的型別返回。
我們不能將 mixed 與其他型別一起在聯合中使用。
function(mixed|FooClass $bar): int|mixed {}注意:在上面的程式碼中,不允許使用兩種聯合型別,它會報一個致命錯誤。
輸出
Fatal error: Type mixed can only be used as a standalone type in C:\xampp\htdocs\gud.php on line 2
示例:使用混合型別的 PHP 8 程式程式碼
<?php
function debug_function(mixed ...$data){
print_r($data);
}
debug_function(10, 'string', []);
?>輸出
Array ( [0] => 10 [1] => string [2] => Array ( ) )
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP