Home >Backend Development >PHP Tutorial >Detailed explanation of php pseudo-types
php pseudo-types (pseudo-types) are used in PHP documents to indicate the types and values that parameters can use. Please note that they are not native types in the PHP language. Therefore, pseudo-types cannot be used for type constraints (typehint) in custom functions.
mixed indicates that a parameter can accept multiple different (but not necessarily all) types.
For example, gettype() can accept all PHP types, str_replace() can accept strings and arrays.
number indicates that a parameter can be integer or float.
The callback pseudo-type was used before the callable type was introduced in PHP 5.4. Both have exactly the same meaning.
Some functions such as call_user_func() or usort() can accept user-defined callback functions as parameters. The callback function can not only be a simple function, but also an object method, including static class methods.
For example, the call_user_func() function can receive a user-defined function as a parameter, which is a built-in function of PHP. The callback function can not only be a function, but also a method of an object and a method of a static class. A PHP function is passed as a function name string. Any built-in or user-defined function can be passed, except language structures such as array(), echo(), empty(), eval(), exit(), isset() ,list(),print(),unset(), etc.
Refer here for examples
//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 means that the parameter can be either array or object.
void as a return type means that the return value of the function is useless. void as a parameter list means that the function does not accept any parameters.
In the function prototype, $… means etc. Use this variable name when a function can accept any number of parameters.
<?phpfunction sum(...$numbers) { $acc = 0; foreach ($numbers as $n) { $acc += $n; } return $acc; }echo sum(1, 2, 3, 4);?>
Related recommendations:
Pseudo types and pseudo variables in PHP
General parameter functions and pseudo variables of php functions Type parameter function
The above is the detailed content of Detailed explanation of php pseudo-types. For more information, please follow other related articles on the PHP Chinese website!