Laavel 소스에서 본 #[ReturnType Will Change] 뭐예요?
이마
Laavel의 소스에는 #[ReturnTypeWillChange]를 많이 볼 수 있습니다.이것은 Ver8.53.0(2021-08-03) 부근에서 대체로 설치가 완료되었는데 도대체 무엇일까요?
참조:
scrapbox (일본어)
PHP RFC: Add return type declarations for internal methods
GitHub #38221 #38212 #38226 #37838
메시지
글에 무엇이 있는지 참고 링크의 첫 번째 글에서 ReturnType에 관한 내용을 총결하였으니 참고하시기 바랍니다.
중요한 건 PHP8이야.이것은 1에 추가된 기능의 흡판 중 하나로 PHP 내부 방법에 추가된 리턴 type으로 인한 Deprecated 오류를 억제할 수 있다.즉, PHP8.1대책 중 하나.
일반적인 우리로서, 앞으로 예를 들어 Countable을 실현하여count() 방법을 정의할 때
class FooCountable implements Countable
{
public function count(): int // ← ここ : int
{
return 1;
}
}
하면 됩니다.(PHP5 제외)다만, 프레임으로는 그래도 안 가는 경우도 있다고 생각한다.
상기 FooCountable는 프레임워크 측으로 이 종류를 계승하고count() 방법을 실행하는 사용자측의 프로그램입니다. 만약 같은 점이 없다면
Fatal error: Declaration of XXX::count() must be compatible with MyCountable::count():
같은 오류가 발생할 수 있습니다. 다른 PHP8.0이 아니면 DateTime | 가짜 같은 것은 지원되지 않습니다 union return types.(두 번째 참고 링크에 쓰여 있다)따라서 틀에서 #[ReturnTypeWillChange]가 대책을 취하는 것이 현실적인 해결책이다.
잡감
그러고 보니 deprecated의 오류 자체는저번 보도였지만 앞으로의 라벨에서는 억제되었다.
잘못이 있으면 메시지를 남겨 주세요.
Reference
이 문제에 관하여(Laavel 소스에서 본 #[ReturnType Will Change] 뭐예요?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/nshiro/articles/aa6d7065b804b2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)