Bro*_*ias 5 php parameters function
有没有办法要求函数参数是一个特定的数据类型,如数组?例如这样的事情:
function example(array $array){}
Run Code Online (Sandbox Code Playgroud)
如果是这样,那对所有数据类型都有用吗?是否有一个很好的资源可以告诉我如何做到这一点?
编辑:是的,您可以使用数组进行类型提示,因此编辑了我的答案并进行了相应更改。
你想做的就是类型提示。您无法键入提示基本数据类型,例如int, string, bool。array您可以使用对象和接口进行类型提示:
function example_hinted1(array $arr) {
}
function example_hinted2(User $user) {
}
Run Code Online (Sandbox Code Playgroud)
调用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
}
Run Code Online (Sandbox Code Playgroud)
所以,这些片段可以工作:
example(1);
$b = 5 + 8;
example($b);
Run Code Online (Sandbox Code Playgroud)
虽然这些会抛出异常:
example('foo');
example(array(5, 6));
example(new User());
Run Code Online (Sandbox Code Playgroud)