PHP 스칼라 유형 및 반환 값 유형 선언
PHP 스칼라 유형 및 반환 값 유형 선언
스칼라 유형 선언
기본적으로 모든 PHP 파일은 약한 유형 검사 모드에 있습니다.
PHP 7에는 스칼라 유형 선언 기능이 추가되었습니다. 스칼라 유형 선언에는 두 가지 모드가 있습니다:
- force 모드(기본값)
- strict 모드
스칼라 유형 선언 구문 형식:
declare(strict_types=1) ) ;
코드에서 strict_types 값(1 또는 0)을 지정하면 1은 함수 호출 및 반환 문에 적용되는 엄격한 유형 검사 모드를 나타냅니다. 0은 약한 유형 검사 모드를 나타냅니다.
사용 가능한 유형 매개변수는 다음과 같습니다:
int
float
bool
string
interfaces
-
배열
호출 가능
force mode 예시
예
<?php // 强制模式 function sum(int ...$ints) { return array_sum($ints); } print(sum(2, '3', 4.1)); ?>
위 프로그램 실행 출력 결과는 다음과 같습니다.
9
예제 요약 매개변수 4.1을 정수 4로 변환한 후 추가합니다.
엄격 모드 예시
Example
<?php // 严格模式 declare(strict_types=1); function sum(int ...$ints) { return array_sum($ints); } print(sum(2, '3', 4.1)); ?>
위 프로그램은 엄격 모드를 채택했기 때문에 매개변수에 부적절한 정수형이 있으면 오류가 보고됩니다.
PHP 치명적인 오류입니다. : Uncaught TypeError: sum()에 전달된 인수 2는 정수 유형이어야 하며 주어진 문자열, 호출됨...
반환 유형 선언
PHP 7에서는 함수 유형을 지정하는 반환 유형 선언에 대한 지원을 추가합니다. 반환 값.
선언할 수 있는 반환 유형은 다음과 같습니다:
int
float
bool
string
interfaces
-
배열
호출 가능
반환 유형 선언 인스턴스
인스턴스에서 반환 결과는 정수여야 합니다.
인스턴스
<?php declare(strict_types=1); function returnIntValue(int $value): int { return $value; } print(returnIntValue(5)); ?>
위 프로그램 실행 출력 결과는 다음과 같습니다.
5
반환 유형 선언 오류 인스턴스
인스턴스
<?php declare(strict_types=1); function returnIntValue(int $value): int { return $value + 1.0; } print(returnIntValue(5)); ?>
위 프로그램은 strict 모드로 인해 반환 값은 int여야 하지만 계산 결과는 float이므로 실행 출력은 다음과 같습니다.
Fatal error: Uncaught TypeError: returnIntValue()의 반환 값은 정수, 부동 소수점 형식이어야 합니다...