PHP7의 유형 힌트 기능: 오류와 불확실성을 피하기 위해 함수의 매개변수 유형을 명확히 하는 방법은 무엇입니까?
소개:
개발 과정에서 함수 매개변수 전달 문제에 자주 직면하게 됩니다. 때로는 불분명한 유형의 함수 매개변수로 인해 오류와 불확실성이 발생합니다. 이 문제를 해결하기 위해 PHP7에서는 함수 매개변수의 유형을 명시적으로 지정할 수 있는 유형 힌트 기능을 도입하여 몇 가지 일반적인 오류를 피하고 불확실성을 줄였습니다. 이 기사에서는 PHP7의 Type Hinting 사용법을 자세히 소개하고 구체적인 코드 예제를 제공합니다.
1. 유형 힌트의 개념:
유형 힌트는 함수 매개변수 유형을 선언하는 방법입니다. 함수 매개변수 앞에 지정된 유형을 추가하면 함수에 전달된 값이 예상된 유형인지 확인할 수 있습니다. 전달된 유형이 일치하지 않으면 치명적인 오류가 생성됩니다.
2. 유형 힌트 사용법:
PHP7에서는 다음 방법을 사용하여 유형 힌트를 수행할 수 있습니다.
, , <bool>, <float>, <int>, <string></string></int></float></bool>
). 예는 다음과 같습니다. 71a5c0ce21edb084a5777bae1742fc2a、7e00dfbe372dc511c53a4bfa850feaa7、9eac9cfd9e022188a134e2cbc39820d5、0e2ea47d5eae65f8b4d535dca655670f、bd43222e33876353aff11e13a7dc75f6、98c455a79ddfebb79781bff588e7b37e
)。下面是一个例子:function addNumbers(int $a, int $b): int { return $a + $b; } echo addNumbers(5, 10); // 输出15 echo addNumbers("5", 10); // 报错,因为"5"不是一个整数
在上面的例子中,函数addNumbers
的参数$a
和$b
被指定为整数。如果传入的值不是整数类型,则会产生一个致命错误。
class User { // ... } class UserService { public function register(User $user) { // ... } } $user = new User(); $service = new UserService(); $service->register($user); // 正确 $service->register("abc"); // 报错,因为"abc"不是 User 类的实例
在上面的例子中,函数register
的参数$user
被指定为User
类的实例。如果传入的值不是User
类的实例,则会产生一个致命错误。
null
值,可以使用?
将参数类型标记为可为空类型。下面是一个例子:function searchUser(?string $keyword): array { // ... } var_dump(searchUser("John")); // array(1) { [0]=> string(4) "John" } var_dump(searchUser(null)); // array(0) { }
在上面的例子中,函数searchUser
的参数$keyword
被指定为字符串类型,但可以接受null
值。如果传入的值不是字符串类型或null
위 예에서 addNumbers
함수의 $a
및 $b
매개변수는 정수로 지정됩니다. . 전달된 값이 정수 유형이 아닌 경우 치명적인 오류가 생성됩니다.
register
함수의 $user
매개변수는 User
의 인스턴스로 지정됩니다. > 수업. 전달된 값이 User
클래스의 인스턴스가 아닌 경우 치명적인 오류가 생성됩니다. null
값을 허용하기를 원할 경우 ?
를 사용하여 매개변수 유형을 사용 가능한 것으로 표시할 수 있습니다. 빈 유형. 예는 다음과 같습니다. searchUser
함수의 $keyword
매개변수는 문자열 유형으로 지정되지만 null을 허용할 수 있습니다. 값. 전달된 값이 문자열 또는 <code>null
유형이 아닌 경우 치명적인 오류가 생성됩니다.
3. 유형 힌트의 장점:
위 내용은 PHP7의 유형 힌트 기능: 오류와 불확실성을 피하기 위해 함수의 매개변수 유형을 명확히 하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!