PHP类型约束
从php5开始function的参数可以指定为对象,接口,数组,callalbe(从php5.4开始)不过如果使用 null作为参数的默认值,那么在调用函数的时候依然可以使用 null作为实参。如果一个类或接口指定了类型约束,则其所有的子类或实现也都如此。约束类型不可以用用在stirng int trait类型。
函数调用的参数与给定的约束不一致会抛出致命异常。
class demo
{
public function array_demo(array $array)
{
print_r($array);
}
public function obj_demo(demoClass $obj = null)
{
print_r($obj);
}
public function interface_demo(demoInterface $obj)
{
$obj->eat();
}
public function callable_demo(callable $callback, $data)
{
call_user_func($callback, $data);
}
}