>  기사  >  백엔드 개발  >  PHP 의사 유형에 대한 자세한 설명

PHP 의사 유형에 대한 자세한 설명

小云云
小云云원래의
2018-03-02 09:37:111917검색

php 의사 유형(pseudo-types)은 PHP 문서에서 매개변수가 사용할 수 있는 유형과 값을 나타내는 데 사용됩니다. PHP 언어의 기본 유형이 아니라는 점에 유의하십시오. 따라서 사용자 정의 함수의 유형 제약 조건(typehint)에는 의사 유형을 사용할 수 없습니다.

mixed

mixed는 매개변수가 여러 가지(반드시 전부는 아님) 유형을 허용할 수 있음을 나타냅니다.
예를 들어, gettype()은 모든 PHP 유형을 받아들일 수 있고, str_replace()는 문자열과 배열을 받아들일 수 있습니다.

number

number는 매개변수가 정수 또는 부동 소수점일 수 있음을 나타냅니다.

callback

콜백 의사 유형은 PHP 5.4에 호출 가능 유형이 도입되기 전에 사용되었습니다. 둘 다 정확히 같은 의미를 가지고 있습니다.

call_user_func() 또는 usort()와 같은 일부 함수는 사용자 정의 콜백 함수를 매개변수로 받아들일 수 있습니다. 콜백 함수는 단순한 함수일 뿐만 아니라 정적 클래스 메서드를 포함한 객체 메서드일 수도 있습니다.
예를 들어 call_user_func() 함수는 PHP 내장 함수인 사용자 정의 함수를 매개변수로 받을 수 있습니다. 콜백 함수는 함수일 뿐만 아니라 객체의 메서드, 정적 클래스의 메서드일 수도 있습니다. PHP 함수는 함수 이름 문자열로 전달됩니다. array(), echo(),empty(), eval(),exit(), isset과 같은 언어 구조를 제외한 모든 내장 함수 또는 사용자 정의 함수가 전달될 수 있습니다. (), list(), print(), unset() 등
여기 예시를 보세요

//call_user_func()函数用法如下:function my_callback_function(){  
        echo "my is callback function.";  
    }  

    //回调方法  
    class MyClass{  
        static function myCallbackMethod(){  
            echo "my is callback method.";  
        }  
    }  

    //num1:回调函数  
    call_user_func('my_callback_function');  

    //num2:静态类的方法  
    call_user_func(array('MyClass','myCallbackMethod'));  

    //num3:对象方法  
    $obj = new MyClass();  
    call_user_func(array($obj,'myCallbackMethod'));  

    //num4:静态类的方法(5.3.0以上)  
    call_user_func('MyClass::myCallbackMethod');  

    //num5:相对静态方法调用  
    class A {  
        public static function who(){  
            echo "A";  
        }  
    }  

    class B extends A {  
        public static function who(){  
            echo "B";  
        }  
    }  

    call_user_func(array('B','parent::who'));   //输出B  

    //num6:调用时传入参数  
    function test($a,$b){  
        echo $a;  
        echo $b;  
    }  

    call_user_function('test','1','2'); //输出1 2  

    //num7:调用类方法传入参数  
    class a(){  
        function b($c){  
            echo $c;  
        }  
    }  

    call_user_func(array('a','b'),'1'); //输出1  

    //num8:call_user_func_array与call_user_func很相似,只不过换了一种方式传递参数,让参数结构更清晰:  
    function a($b,$c){  
        echo $b;  
        echo $c;  
    }  

    call_user_func_array('a',array('1','2'));   //输出1 2  

    //num9:用call_user_func_array调用类内部方法  
    class A(){  
        function a($b,$c){  
            echo $b;  
            echo $c;  
        }  
    }  

    call_user_func_array(array('A','a'),array('1','2'));    //输出1 2
array|object

array|object는 매개변수가 배열이거나 객체일 수 있다는 뜻입니다.

void

void라는 반환 유형은 함수의 반환 값이 쓸모 없다는 의미입니다. 매개변수 목록의 void는 함수가 어떤 매개변수도 허용하지 않음을 의미합니다.

함수 프로토타입에서 $… 등을 의미합니다. 함수가 임의 개수의 매개변수를 허용할 수 있는 경우 이 변수 ​​이름을 사용하십시오.

<?phpfunction sum(...$numbers) {
    $acc = 0;    foreach ($numbers as $n) {        $acc += $n;
    }    return $acc;
}echo sum(1, 2, 3, 4);?>

관련 권장사항:

PHP의 의사 유형 및 의사 변수

일반 매개변수 함수와 의사 유형 매개변수 함수의 PHP 함수

PHP의 의사 유형

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

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