前言
本文就介绍了PHP函数的类型约束基础内容。
提示:以下是本篇文章正文内容,下面案例可供参考
一、类型约束
- 函数的参数可以指定类型。
- 函数的参数可以指定必须为对象,接口,数组或者 callable。
- 使用 NULL 作为参数的默认值,那么在调用函数的时候依然可以使用 NULL 作为实参。
- 如果一个类或接口指定了类型约束,则其所有的子类或实现也都如此。类型约束不止用在类的函数里,还可以用在普通函数中。
- 类型约束不能用于标量类型如 int 或 string。Traits 也不允许。
- 函数调用的参数与定义的参数类型不一致时,会抛出一个可捕获的致命错误。
class MyClass{
function MyFun(MyClass1 $arg){ //第一个参数为MyClass1类的一个对象
echo "MyClass->MyFun<br>";
}
function MyFun1(array $arg){ //第一个参数为数组
echo "MyClass->MyFun1<br>";
}
function MyFun2(Traversable $arg){ //第一个参数为递归类型
echo "MyClass->MyFun2<br>";
}
function MyFun3(callable $callback, $data){ //第一个参数为回调类型
echo "MyClass->MyFun3<br>";
call_user_func($callback,$data);
}
}
class MyClass1{
public $var = 'PHP';
}
$foo = new MyClass();
$bar = new MyClass1();
$foo->MyFun($bar);
$foo->MyFun1(array('PHP','Java','Python'));
$foo->MyFun2(new ArrayObject(array()));
$foo->MyFun3('var_dump','hello');