소위 유형 제약 조건은 변수를 정의할 때 해당 유형을 지정해야 하며 변수는 앞으로 해당 유형의 데이터만 저장할 수 있음을 의미합니다. 이 기사에서는 PHP 유형 제약 조건과 사용법을 소개합니다.
PHP 유형 제약 소개
PHP는 약한 유형의 언어입니다. 그 특징은 변수에 유형을 지정할 필요가 없으며 나중에 어떤 유형이든 저장할 수 있다는 것입니다. PHP를 사용한 신속한 개발의 핵심 포인트. 하지만 PHP5부터 함수(메서드) 매개변수에 유형 제약을 사용할 수 있습니다.
함수 매개변수는 다음 범위에서 지정할 수 있습니다.
1. 객체여야 합니다(함수 프로토타입에 클래스 이름 지정).
3.인터페이스; ;
4. 호출 가능(PHP 5.4부터).
5. 매개변수의 기본값으로 NULL을 사용하는 경우에도 함수 호출 시 실제 매개변수로 NULL을 사용할 수 있습니다.
6. 클래스나 인터페이스가 유형 제약 조건을 지정하는 경우 모든 하위 클래스나 구현도 마찬가지입니다.
Note: PHP7 이전에는 int 또는 string과 같은 스칼라 유형에 유형 제약 조건을 사용할 수 없었습니다. 특성도 허용되지 않습니다.
PHP 유형 제약 사용:
다음은 공식 예입니다.
<?php //如下面的类 class MyClass { /** * 测试函数 * 第一个参数必须为 OtherClass 类的一个对象 */ public function test(OtherClass $otherclass) { echo $otherclass->var; } /** * 另一个测试函数 * 第一个参数必须为数组 */ public function test_array(array $input_array) { print_r($input_array); } } /** * 第一个参数必须为递归类型 */ public function test_interface(Traversable $iterator) { echo get_class($iterator); } /** * 第一个参数必须为回调类型 */ public function test_callable(callable $callback, $data) { call_user_func($callback, $data); } } // OtherClass 类定义 class OtherClass { public $var = 'Hello World'; } ?>
함수 호출의 매개변수가 정의된 매개변수 유형과 일치하지 않으면 포착 가능한 치명적인 오류가 발생합니다.
<?php // 两个类的对象 $myclass = new MyClass; $otherclass = new OtherClass; // 致命错误:第一个参数必须是 OtherClass 类的一个对象 $myclass->test('hello'); // 致命错误:第一个参数必须为 OtherClass 类的一个实例 $foo = new stdClass; $myclass->test($foo); // 致命错误:第一个参数不能为 null $myclass->test(null); // 正确:输出 Hello World $myclass->test($otherclass); // 致命错误:第一个参数必须为数组 $myclass->test_array('a string'); // 正确:输出数组 $myclass->test_array(array('a', 'b', 'c')); // 正确:输出 ArrayObject $myclass->test_interface(new ArrayObject(array())); // 正确:输出 int(1) $myclass->test_callable('var_dump', 1); ?>
유형 제약 조건은 클래스 멤버 함수뿐만 아니라 함수에서도 사용됩니다.
<?php // 如下面的类 class MyClass { public $var = 'Hello World'; } /** * 测试函数 * 第一个参数必须是 MyClass 类的一个对象 */ function MyFunction (MyClass $foo) { echo $foo->var; } // 正确 $myclass = new MyClass; MyFunction($myclass); ?>
유형 제약 조건은 NULL 값을 허용합니다.
<?php /* 接受 NULL 值 */ function test(stdClass $obj = NULL) { } test(NULL); test(new stdClass); ?>PHP7
스칼라 유형 선언(PHP 7)
스칼라 유형 두 가지가 있습니다. 선언 모드: 필수(기본값) 및 엄격 모드.
이제 다음 유형 매개변수를 사용할 수 있습니다(강제 모드 또는 엄격 모드 여부):
1, 문자열(문자열),
2, 정수(int),
3, 부동 소수점 숫자(float),
4, 부울 값(bool).
PHP5에 도입된 다른 유형(클래스 이름, 인터페이스, 배열 및 콜백 유형)을 확장합니다.
<?php // 强制模式 function sumOfInts(int ...$ints) { return array_sum($ints); } var_dump(sumOfInts(2, '3', 4.1));
위 예제는 다음을 출력합니다: int(9)
엄격 모드를 사용하려면 선언 선언 지시문을 파일 상단에 배치해야 합니다. 이는 스칼라가 파일 기반으로 구성 가능하다고 엄격하게 선언됨을 의미합니다. 이 지시문은 매개변수의 유형 선언뿐만 아니라 함수의 반환 값 선언에도 영향을 미칩니다.
추천 관련 기사:
PHP의 유형 제약 조건 소개, PHP 유형 제약 조건 소개 유형 제약 조건을 사용하여 PHP 함수 유형을 제한하는 방법위 내용은 PHP 유형 제한이란 무엇입니까? PHP 유형 제약의 소개와 사용법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!