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