在强类型语言中,类型约束是语法上的要求,即定义一个变量的时候,必须指定类型,并以后也只能存储该类型数据。
php是弱类型语言,其特点是无需为变量指定类型,而且在其后也可以存储任何类型,不过在php的新语法中,在某些特定场合,针对某些特定类型,也可进行语法约束。
- 特定场合:函数(方法)的形参变量
- 特定类型:对象类型(类名)、接口类型(接口名)、数组类型(array)、函数类型(callable)
即可以对函数(方法)的参数设定必须使用的类型。只能对对象、接口、数组和函数进行约束。如果一个类或接口指定了类型约束,则其所有的子类或实现也都如此。在PHP7以前,类型约束不能用于标量类型如 int 或 strin
function func(类名 $Class){} // 要求参数只能使用该类的对象
function func(接口名 $func){} // 要求该参数只能使用实现该接口的对象
function func(array $array){} // 要求该参数只能使用数组
function func(callable $callback) // 要求该参数只能是一个函数(方法),此时称之为回调函数(方法)
发表评论