이 글은 주로 PHP에서 타입 힌트의 역할과 사용법을 소개합니다. 관심 있는 친구들이 참고하면 좋겠습니다.
Overview
PHP5부터 유형 힌트를 사용하여 함수 정의 시 함수가 받는 매개변수 유형을 지정할 수 있습니다. 함수를 정의할 때 매개변수 유형을 지정하고 함수를 호출할 때 실제 매개변수의 유형이 지정된 유형과 일치하지 않으면 PHP는 치명적인 오류(Catchable fatal error)를 생성합니다.
클래스 이름과 배열
함수를 정의할 때 PHP는 클래스 이름과 배열이라는 두 가지 유형 선언만 지원합니다. 클래스 이름 테이블 이름 이 매개변수가 받는 실제 매개변수는 해당 클래스에 의해 인스턴스화된 객체이며, 배열은 받은 실제 매개변수가 배열 유형임을 나타냅니다. 예를 들면 다음과 같습니다.
코드는 다음과 같습니다.
function demo(array $options){ var_dump($options); }
demo() 함수를 정의할 때 함수가 받는 매개변수 유형을 배열로 지정합니다. 함수를 호출할 때 전달된 매개변수가 배열 유형이 아닌 경우(예: 다음과 같은 호출):
코드는 다음과 같습니다:
$options='options'; demo($options);
그러면 다음 오류가 발생합니다:
Catchable fatal error: 데모()에 전달된 인수 1은 배열 유형이어야 하며 주어진 문자열이어야 합니다.
기본 매개변수로 null을 사용할 수 있습니다
Note
한 가지 주목할 점은 PHP는 두 가지 유형의 유형 선언만 지원한다는 것입니다. 다른 스칼라 유형 선언은 지원되지 않습니다. 예를 들어 다음 코드는 오류를 생성합니다.
코드는 다음과 같습니다.
function demo(string $str){ } $str="hello"; demo($str)
위 코드를 실행하면 문자열이 클래스 이름으로 처리되므로 다음과 같습니다. 오류가 보고됩니다:
Catchable fatal error: 데모()에 전달된 인수 1은 문자열의 인스턴스여야 하며 주어진 문자열은
Summary
Type 선언도 특히 예외를 잡을 때 PHP 객체 지향의 발전입니다. 매우 유용한 유형입니다.
유형 선언을 사용하면 코드 가독성도 높아질 수 있습니다.
그러나 PHP는 약한 유형의 언어이기 때문에 유형 선언을 사용하는 것은 PHP 디자인의 원래 의도에 어긋납니다.
타입 선언을 사용할지 말지는 모두의 의견입니다. 저는 초보자입니다. :)
위 내용은 모든 사람의 학습에 도움이 되기를 바랍니다.
관련 권장 사항:
위 내용은 PHP에서 유형 힌트의 역할과 사용의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!