> 헤드라인 > 본문

PHP가 곧 Union Types를 도입할 예정입니다. 투표가 통과되었습니다!

爱喝马黛茶的安东尼
풀어 주다: 2019-11-15 17:58:32
앞으로
4394명이 탐색했습니다.

PHP가 곧 Union Types를 도입할 예정입니다. 투표가 통과되었습니다!

PHP 8에 Union Types를 도입할지 여부에 대한 투표가 최근 종료되었습니다. 투표 결과, PHP 개발팀 구성원 중 61명이 찬성표를, 5표가 반대표를 냈습니다.

PHP가 곧 Union Types를 도입할 예정입니다. 투표가 통과되었습니다!

PHP가 곧 Union Types를 도입할 예정입니다. 투표가 통과되었습니다!

또한 투표에서 브라더버드가 반대표를 던졌다는 점을 알아두세요~

그래서 투표 결과에 따르면 관계자는 Union Types 2.0이 PHP 8에 도입될 것이라고 확인했습니다.

PHP가 곧 Union Types를 도입할 예정입니다. 투표가 통과되었습니다!

Union Types에 대한 자세한 토론은 GitHub에서 볼 수 있습니다. Union Types에 대해 간략하게 살펴보겠습니다.

공식 소개에 따르면 Union Types는 단일 유형이 아닌 다양한 유형의 여러 값 수신을 지원합니다. PHP는 현재 두 가지 특수 공용체 유형을 지원합니다.

·특수 유형 구문을 사용하는 Type 또는 null

·array 또는 Traversable, 특수 반복 가능한 유형 만들기

그러나 PHP는 아직 어떤 공용체 유형도 지원하지 않습니다. . 사용하려면 phpdoc 주석의 도움이 필요합니다.

<pre style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 14px; line-height: 
1.5em; white-space: pre-wrap; overflow-wrap: break-word;">class Number { /**
* @var int|float number; /**
* @param int|float number) { number;
} /**
* @return int|float */
public function getNumber () { return $this->number;
}
}
로그인 후 복사

statistics 결과에 따르면 오픈 소스 생태계와 PHP 자체 표준에서는 공용체 유형의 사용이 매우 일반적입니다. 도서관. 공식적으로 PHP가 공용체 유형을 지원할 수 있다면 더 많은 유형 정보를 phpdoc에서 함수 시그니처로 마이그레이션할 수 있게 되며 이는 다음과 같은 공통 이점을 갖습니다.

· 유형이 실제로 시행되므로 오류를 조기에 포착할 수 있습니다.

·필수이기 때문에 유형 정보가 오래되거나 예외적인 경우를 놓칠 가능성이 적습니다.

·리스코프 대체 원칙을 구현하기 위해 상속 과정에서 유형을 확인합니다.

·유형 정보는 리플렉션을 통해 얻을 수 있습니다.

· 구문은 phpdoc보다 간단합니다.

제네릭 다음으로 공용체 유형은 현재 유형 선언 시스템에서 가장 큰 "간격"이라고 할 수 있습니다.

****Proposal****

Union 유형은 T1T2… 구문을 사용하며 허용되는 모든 유형에서 사용할 수 있습니다.

<pre style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 14px; line-height: 
1.5em; white-space: pre-wrap; overflow-wrap: break-word;">class Number { private int|float number): void { number;
} public function getNumber (): int|float { return $this->number;
}
}
로그인 후 복사

지원 유형

PHP에서 지원되는 Union 유형 현재 지원되는 모든 유형: null 유형, nullable 공용체 유형, 거짓 의사 유형, 반복 및 중복 유형.

****유형 구문****

특별한 void 유형을 제외하고 이제 PHP의 유형 구문은 다음 구문으로 설명할 수 있습니다.

<pre style="margin: 0px; padding: 0px; font-family: "Courier New" !important; font-size: 14px; line-height: 
1.5em; white-space: pre-wrap; overflow-wrap: break-word;">type: simple_type | "?" simple_type | union_type
;
union_type: simple_type "|" simple_type | union_type "|" simple_type
;
simple_type: "false" # only legal in unions
| "null" # only legal in unions
| "bool"
| "int"
| "float"
| "string"
| "array"
| "object"
| "iterable"
| "callable" # not legal in property types
| "self"
| "parent"
| namespaced_name
;
로그인 후 복사
1 0

PHP 중국어 웹사이트, 다수의 무료 PHP 입문 튜토리얼 , 온라인 학습을 환영합니다!

관련 라벨:
원천:jianshu.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!