有没有办法要求函数参数是特定的数据类型,例如数组?例如这样的:
function example(array $array){}
如果是这样,这适用于所有数据类型吗?有没有好的资源可以告诉我如何做到这一点?
有没有办法要求函数参数是特定的数据类型,例如数组?例如这样的:
function example(array $array){}
如果是这样,这适用于所有数据类型吗?有没有好的资源可以告诉我如何做到这一点?
编辑:是的,您可以使用数组输入提示,因此编辑了我的答案并进行了相应更改。
你想要做的就是type-hinting。您不能键入提示基本数据类型,例如int
, string
, bool
。您可以使用array
或对象和接口进行类型提示:
function example_hinted1(array $arr) {
}
function example_hinted2(User $user) {
}
调用example_hinted1(5)
会产生一个 PHP 致命错误(不是异常),但调用它传递一个数组是完全可以的。
如果您需要确保函数的某些参数来自基本类型,您可以使用函数内的代码模拟此行为:
function example($number) {
if (!is_int($number) {
throw new Exception("You must pass an integer to ".__FUNCTION__."()");
}
// rest of your function
}
所以,这些片段会起作用:
example(1);
$b = 5 + 8;
example($b);
虽然这些会引发异常:
example('foo');
example(array(5, 6));
example(new User());