[원숭이 쓰기] PHP8의 유니언 types와mixed에 대한 생각
드디어 PHP8이 나왔네요!
그래서 신경 쓰이는 새로운 기능인 언니언티페스와 믹스드형을 정리했다.
1. UnionTypes
PHP8 이전에는 속성, 매개변수 및 반환 값 유형에 대해서만 단일 유형을 선언할 수 있었습니다.
또 PHP 7.1 이후 버전은null 허용형이 있습니다.
PHP8 이전에는 한정된 UnionType만 만들 수 있었습니다.
겸사겸사 말씀드리지만,null로 쓸 수 있다면, 양식 앞에서 쓰시겠습니까?됐어요.
例) ?string
PHP8 이전에는 PHPDoc를 사용하는 UnionType이 있었습니다.class Test {
/**
* @var int|float
*/
private $test;
/**
* @param int|float $foo
* @return int|float
*/
public function square(int $foo): int {
return $foo * $foo;
}
}
PHP8은 이렇게 쓰여있죠!이 경우 PHPDoc라고 써야 합니까?
@param
와@return
타입의 PHPDoc가 필요 없고, 방법에 대한 설명만 남은 느낌인가요?class Test {
private int|float $test;
public function square(int|float $foo): int|float {
return $foo * $foo;
}
}
void 처리
UnionType에서는 void를 사용할 수 없습니다.
따라서 다음을 지정할 수 없습니다.
strign|void
null 허용형에 관하여
UnonTypes 및 null 허용형 정보
?int|float
처럼 쓰면 안 되고 int|float|null
처럼 써야 한다.유형 반복 정보
int|float|INT
처럼 반복해서 쓰면 안 된다.가짜
가면 유형은 UnnionTypes의 일부로 지원됩니다.
이것은 많은 내부 함수로 이루어졌지만 실패할 때는 비어 있는 것이 아니라 가짜였다.
그리고 이것은 단독으로 사용할 수 없습니다.
이에 따라
false
,?false
,false|null
등은 사용할 수 없다.유니언형과 강제형
strict_types가 유효하지 않을 때, 스칼라 값은 기본 형식 변환 대상입니다.
예를 들어
bool|int
"0"
의 경우 false
및 0
는 기본 유형 변환의 대상이다.형 전환의 우선 순위는 다음과 같기 때문에 우선 순위 1의 int에 대해 형 변환
"0"
을 0
로 변환한다.유형 변환 우선 순위
1.int 2.float 3.string 4.bool
2.블렌드
mixed형과 이하 유니온형은 동일합니다.
array|bool|callable|int|float|object|resource|string|null
처음에는 이런 유형이 있어도 선언하지 않는 것과 같다고 생각했는데, 당연히 도입한 이유도 있었다.이유여기 기사.에 대한 상세한 설명이 있기 때문에 사용자 각도에서 의견을 총결하였다.
장점
결점
mixed형 요약
좋은 점과 나쁜 점은 모두 있지만 개인적으로mixed를 남용하는 것은 가능성이 높다고 생각한다.따라서 적당한 진행형 선언을 전제로 믹스d를 함부로 쓰지 않는 것도 신경 쓸 필요가 있다.
참고 문헌
Reference
이 문제에 관하여([원숭이 쓰기] PHP8의 유니언 types와mixed에 대한 생각), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/hajime_shoji/articles/bf778fde37868d4d6b47텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)