PHP 8의 혼합 유형은 새로운 내장 공용체 유형입니다. 혼합 유형은 array|bool|callable|int|float와 동일합니다. . 유형을 혼합하는 것은 유형을 완전히 생략하는 것과 유사하지 않습니다.
즉, 프로그래머가 작성하는 것을 잊었습니다.
때때로 프로그래머는 이전 버전과의 호환성을 유지하기 위해 특정 유형을 생략하는 것을 선호합니다.
PHP 8의 혼합 유형은 모든 유형의 속성/반환/매개변수를 사용할 수 있습니다. null, 호출 가능, 리소스, 모든 클래스 개체 또는 PHP의 모든 스칼라 유형을 포함한다고 말할 수 있습니다. 혼합형은 Union형과 동일합니다.
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에서 혼합은 의사/가상 유형입니다. 이는 PHP가 처리할 수 있는 여러 유형을 나타냅니다. 즉, 논리를 만들지 않기 때문에 변수를 혼합으로 캐스팅할 수 없습니다.
$foo = (mixed) $bar;
참고: gettype() 및 get_debug_type() 함수도 변수 유형으로 혼합을 반환할 수 없습니다.
-
다른 유형과 혼합하여 사용할 수 없습니다.
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 ( ) )