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

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


스칼라 유형 선언

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

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

  • Force 모드(기본값)
  • Strict 모드

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

declare(strict_types=1);

코드 값(1 또는 0), 1은 함수 호출 및 반환 문에 적용되는 엄격한 유형 검사 모드를 나타냅니다. 0은 약한 유형 검사 모드를 나타냅니다.

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

  • int

  • float

  • bool

  • string

  • interfaces

  • 배열

  • 호출 가능

force mode 예시

Example

<?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 Fatal error:  Uncaught TypeError: Argument 2 passed to sum() must be of the type integer, string given, called in……

반환 유형 선언입니다.

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));
?>

위 프로그램은 엄격 모드를 사용하며 반환 값은 int여야 하지만 계산 결과는 float이므로 실행 출력 결과는

Fatal error: Uncaught TypeError: Return value of returnIntValue() must be of the type integer, float returned...
입니다.다음 섹션
<?php // 强制模式 function sum(int ...$ints) { return array_sum($ints); } print(sum(2, '3', 4.1)); ?>
코스웨어