이 문서에서는 주로 PHP의 유형 제약 조건에 대해 소개합니다. 유형 제약 조건은 PHP 클래스 메서드 및 함수에서 구현할 수 있지만 매개 변수는 클래스, 배열, 인터페이스 및 호출 가능의 네 가지 유형만 지정할 수 있으며 PHP는 기본값을 NULL로 지정할 수 있습니다. 스칼라 유형이나 다른 유형을 제한할 수 없습니다. 이 기사가 모든 사람에게 도움이 되기를 바랍니다.
유형 제약 조건은 PHP 클래스 메서드 및 함수에서 구현할 수 있지만 매개 변수는 클래스, 배열, 인터페이스 및 호출 가능의 네 가지 유형만 지정할 수 있습니다. 매개 변수는 기본적으로 NULL을 지정할 수 있습니다. PHP는 스칼라 유형이나 기타 유형을 제한할 수 없습니다.
다음 예:
<?php class Test { public function test_array(array $arr) { print_r($arr); } public function test_class(Test1 $test1 = null) { print_r($test1); } public function test_callable(callable $callback, $data) { call_user_func($callback, $data); } public function test_interface(Traversable $iterator) { print_r(get_class($iterator)); } public function test_class_with_null(Test1 $test1 = NULL) { } } class Test1{} $test = new Test(); //函数调用的参数与定义的参数类型不一致时,会抛出一个可捕获的致命错误。 $test->test_array(array(1)); $test->test_class(new Test1()); $test->test_callable('print_r', 1); $test->test_interface(new ArrayObject(array())); $test->test_class_with_null();
그럼 스칼라 유형을 제한하는 방법은 무엇입니까?
PECL 확장 라이브러리는 정수, 부동 소수점, 부울, 열거형 및 문자열 유형 제약 조건을 구현하는 SPL 유형 확장을 제공합니다.
$int = new SplInt ( 94 ); try { $int = 'Try to cast a string value for fun' ; } catch ( UnexpectedValueException $uve ) { echo $uve -> getMessage () . PHP_EOL ; } echo $int . PHP_EOL ; /* 运行结果: Value not an integer 94 */
SPL 유형은 특정 유연성과 성능을 감소시키므로 실제 프로젝트에서는 다시 한 번 생각해 보세요.
관련 추천:
위 내용은 PHP의 유형 제약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!