>  기사  >  백엔드 개발  >  PHP의 유형 제약

PHP의 유형 제약

*文
*文원래의
2017-12-27 10:08:421628검색

이 문서에서는 주로 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(&#39;print_r&#39;, 1);
$test->test_interface(new ArrayObject(array()));
$test->test_class_with_null();

그럼 스칼라 유형을 제한하는 방법은 무엇입니까?

PECL 확장 라이브러리는 정수, 부동 소수점, 부울, 열거형 및 문자열 유형 제약 조건을 구현하는 SPL 유형 확장을 제공합니다.

$int  = new  SplInt ( 94 );
 
try {
     $int  =  &#39;Try to cast a string value for fun&#39; ;
} catch ( UnexpectedValueException $uve ) {
    echo  $uve -> getMessage () .  PHP_EOL ;
}
 
echo  $int  .  PHP_EOL ;
/*
运行结果:
Value not an integer
94
*/

SPL 유형은 특정 유연성과 성능을 감소시키므로 실제 프로젝트에서는 다시 한 번 생각해 보세요.

관련 추천:

PHP 데이터 유형 및 판단 변수 유형

PHP 기능 주의

일부 무시되는 PHP 기능(정리)

위 내용은 PHP의 유형 제약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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