>  기사  >  백엔드 개발  >  PHP에서 함수 매개변수의 엄격한 유형 검사를 구현하는 방법은 무엇입니까?

PHP에서 함수 매개변수의 엄격한 유형 검사를 구현하는 방법은 무엇입니까?

WBOY
WBOY원래의
2024-04-10 15:54:021143검색

PHP 함수 매개변수 유형을 엄격하게 검사하면 전달된 매개변수가 선언된 유형과 일치하는지 확인할 수 있습니다. 선언(strict_types=1)을 통해 활성화되면 함수 매개변수는 지정된 유형과 일치해야 하며, 그렇지 않으면 TypeError 예외가 발생합니다. 엄격한 검사는 기본 유형(int, float), 복합 유형(객체, 배열), 공용체 유형(int|string) 및 선택적 유형(?int)을 지원하여 코드 견고성을 향상시키고 잘못된 유형의 매개변수가 전달되는 것을 방지합니다.

PHP 函数参数类型严格检查如何实现?

PHP 함수 매개변수 유형 엄격한 검사 이해하기

PHP 함수 매개변수 유형 검사란 실제로 전달된 매개변수 유형이 함수 호출 시 함수가 선언한 매개변수 유형과 일치하는지 확인하는 과정을 말합니다. 함수에 전달된 매개변수가 예상한 대로인지 엄격한 검사를 통해 코드의 견고성을 향상시킬 수 있습니다.

Syntax

PHP 7.0 이상에서는 Declare 문을 사용하여 함수 매개변수 유형에 대해 엄격한 검사를 수행할 수 있습니다. Declare 语句对函数参数类型进行严格检查:

declare(strict_types=1);

function add(int $a, int $b) {...}

通过 strict_types=1 声明启用严格模式后,函数 add 要求传入两个整数类型的参数,否则将抛出 TypeError 异常。

参数类型

PHP 支持以下基本类型和复合类型的严格检查:

  • 基本类型:intfloatboolstringnull
  • 复合类型:

    • 对象类型:objectClass
    • 数组类型:array
    • 联合类型:int|string
    • 可选类型:?int

实战案例

场景:

定义一个函数 calculateArea,计算几何图形的面积。需要根据不同的图形类型,传递不同的参数:

function calculateArea($shape, $params) {...}

使用类型检查防止参数错误:

declare(strict_types=1);

function calculateArea(string $shape, array $params): float {...}

通过 strict_types 声明和明确的参数类型,可以防止传递错误类型的参数。例如:

calculateArea(123, []); // 抛出 TypeError 异常

使用联合类型提高灵活性:

function calculateArea(string $shape, int|float $radius): float {...}

联合类型允许函数根据不同的情况接收不同类型的参数。例如,计算圆形或正方形的面积:

calculateArea('circle', 5);
calculateArea('square', 10);

注意要点

  • 严格模式不会影响现有代码,只影响新定义的函数。
  • 只有实际的参数类型与声明的类型不匹配时才抛出异常。
  • 如果希望允许函数返回 null 值,可以使用可选类型 ?rrreee
  • strict_types=1를 통해 엄격 모드를 활성화합니다. > 선언 마지막으로 add 함수에는 두 개의 정수 유형 매개변수가 전달되어야 합니다. 그렇지 않으면 TypeError 예외가 발생합니다.
  • 매개변수 유형
🎜PHP는 다음 기본 유형 및 복합 유형에 대한 엄격한 검사를 지원합니다. 🎜
    🎜기본 유형: int, float, bool code>, <code>string, null🎜🎜🎜복합 유형: 🎜
      🎜객체 유형: object 또는 Class 🎜🎜배열 유형: array🎜🎜Union 유형: int|string🎜🎜선택 유형: ?int🎜🎜🎜🎜 🎜실제 전투 사례 🎜🎜시나리오:🎜🎜기하학적 도형의 면적을 계산하는 calculateArea 함수를 정의합니다. 다양한 그래픽 유형에 따라 다양한 매개변수를 전달해야 합니다. 🎜rrreee🎜유형 검사를 사용하여 매개변수 오류 방지: 🎜rrreee🎜 strict_types 선언 및 매개변수 유형 지우기를 통해 다음을 수행할 수 있습니다. 잘못된 유형의 인수 전달을 방지합니다. 예: 🎜rrreee🎜유연성을 높이기 위해 공용체 유형 사용:🎜rrreee🎜Union 유형을 사용하면 함수가 다양한 상황에 따라 다양한 유형의 매개변수를 수신할 수 있습니다. 예를 들어 원이나 사각형의 면적을 계산하면 🎜rrreee🎜Notes to note🎜
        🎜Strict 모드는 기존 코드에 영향을 주지 않고 새로 정의된 함수에만 영향을 미칩니다. 🎜🎜실제 매개변수 유형이 선언된 유형과 일치하지 않는 경우에만 예외가 발생합니다. 🎜🎜함수가 null 값을 반환하도록 허용하려면 선택적 유형인 ?를 사용할 수 있습니다. 🎜🎜엄격 모드가 활성화되면 선택적 매개변수를 포함하여 함수의 모든 매개변수에 대해 유형을 명시적으로 지정해야 합니다. 🎜🎜

위 내용은 PHP에서 함수 매개변수의 엄격한 유형 검사를 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.