[摘要]所谓类型约束就是定义一个变量的时候,必须指定其类型,并且以后该变量也只能存储该类型数据。在这篇文章中,我将给大家介绍一下php类型约束以及用法。php类型约束的介绍PHP是弱类型语言,其特点就是无需...
所谓类型约束就是定义一个变量的时候,必须指定其类型,并且以后该变量也只能存储该类型数据。在这篇文章中,我将给大家介绍一下php类型约束以及用法。
php类型约束的介绍
PHP是弱类型语言,其特点就是无需为变量指定类型,而且在其后也可以存储任何类型,当然这也是使用PHP能快速开发的关键点之一。但是自PHP5起,我们就可以在函数(方法)形参中使用类型约束了。
函数的参数可以指定的范围如下:
1、必须为对象(在函数原型里面指定类的名字);
2、接口;
3、数组(PHP 5.1 起);
4、callable(PHP 5.4 起)。
5、如果使用 NULL 作为参数的默认值,那么在调用函数的时候依然可以使用 NULL 作为实参。
6、如果一个类或接口指定了类型约束,则其所有的子类或实现也都如此。
注意:在PHP7以前,类型约束不能用于标量类型如 int 或 string。Traits 也不允许。
php类型约束的用法:
下面是官方给的例子:
<?php
//如下面的类
class MyClass
{
/**
* 测试函数
* 第一个参数必须为 OtherClass 类的一个对象
*/
public function test(OtherClass $otherclass) {
echo $otherclass->var;
}
/**
* 另一个测试函数
* 第一个参数必须为数组
*/
public function test_array(array $input_array) {
print_r($input_array);
}
}
/**
* 第一个参数必须为递归类型
*/
public function test_interface(Traversable $iterator) {
echo get_class($iterator);
}
/**
* 第一个参数必须为回调类型
*/
public function test_callable(callable $callback, $data) {
call_user_func($callback, $data);
}
}
// OtherClass 类定义
class OtherClass {
public $var = 'Hello World';
}
?>