PHP 스칼라 유형 및 반환...LOGIN

PHP 스칼라 유형 및 반환 값 유형 선언

스칼라 유형 선언

기본적으로 모든 PHP 파일은 약한 유형 검사 모드입니다.

PHP 7에는 스칼라 유형 선언 기능이 추가되었습니다. 스칼라 유형 선언에는 두 가지 모드가 있습니다.

강제 모드(기본값)

엄격 모드

스칼라 유형 선언 구문 형식:

declare(strict_types=1)

code strict_types 값(1 또는 0)을 지정하면 1은 함수 호출 및 return 문에 적용되는 엄격한 유형 검사 모드를 나타내고, 0은 약한 유형 검사 모드를 나타냅니다.

declare(strict_types=1)은 파일의 첫 번째 문이어야 합니다. 이 명령문이 파일의 다른 곳에 나타나면 컴파일 오류가 생성되고 블록 모드가 명시적으로 금지됩니다.

strict_types 지시문은 지정된 파일에 영향을 미치며 포함된 다른 파일에는 영향을 미치지 않습니다(include 등을 통해). 이 지시문은 런타임에 컴파일되며 수정할 수 없습니다. 작동 방식은 함수 호출과 반환 유형 검사가 유형 제약 조건을 준수하도록 opcode에 플래그를 설정하는 것입니다.

사용 가능한 유형 매개변수는 다음과 같습니다:

int

float

bool

문자열

인터페이스

배열

호출 가능

force 모드 인스턴스

instance

<?php 
// 强制模式 
function sum(int ...$ints) 
{ 
   return array_sum($ints); 
} 
print(sum(2, '3', 4.1)); 
?>

위의 프로그램 실행 출력 결과는 다음과 같습니다.

9

예제 요약 매개변수 4.1을 정수 4로 변환한 후 추가합니다.

엄격 모드 예시

Instance

<?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에서는 return 함수를 지정하는 반환 유형 선언에 대한 지원이 추가되었습니다. 값.

선언할 수 있는 반환 유형은 다음과 같습니다:

int

float

bool

문자열

인터페이스

배열

호출 가능

반환 유형 선언 인스턴스

인스턴스에서 반환 결과는 정수여야 합니다.

instance

<?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. : 잡히지 않는 유형 오류: returnIntValue()의 반환 값은 정수, 부동 소수점 유형이어야 합니다...


<?php // 强制模式 function sum(int $ints) { return array_sum($ints); } print(sum(2, '3', 4.1)); ?>
코스웨어