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); } }