PHP - Laravel 集合或数组的类型提示
PHP - Type hint for Laravel Collection or Array
我想创建一个接受任何可遍历对象作为参数的函数,例如 Laravel Collection/Array。有什么方法可以在函数参数中输入提示这个条件吗??
我想要在单个定义中实现以下两个效果:
function test(array $traversable)
{
print_r($traversable);
}
和
function test(Illuminate\Support\Collection $traversable)
{
print_r($traversable);
}
并且 DocBlock 应该是
/**
* Function to do something
*
* @param Collection|Array $traversable Traversable parameter
* @return null Absolutely nothing
*/
PHP 7.1 将引入 iterable
typehint,它将完全做到这一点:
function test(iterable $items) { /*...*/ }
在那之前,如果您想同时接受 Traversable
和 array
,则不能使用任何类型提示。您唯一可以做的就是使用适当的 @param
注释来记录它:
/**
* @param \Traversable|array $items
*/
function test($items) { /*...*/ }
我想创建一个接受任何可遍历对象作为参数的函数,例如 Laravel Collection/Array。有什么方法可以在函数参数中输入提示这个条件吗??
我想要在单个定义中实现以下两个效果:
function test(array $traversable)
{
print_r($traversable);
}
和
function test(Illuminate\Support\Collection $traversable)
{
print_r($traversable);
}
并且 DocBlock 应该是
/**
* Function to do something
*
* @param Collection|Array $traversable Traversable parameter
* @return null Absolutely nothing
*/
PHP 7.1 将引入 iterable
typehint,它将完全做到这一点:
function test(iterable $items) { /*...*/ }
在那之前,如果您想同时接受 Traversable
和 array
,则不能使用任何类型提示。您唯一可以做的就是使用适当的 @param
注释来记录它:
/**
* @param \Traversable|array $items
*/
function test($items) { /*...*/ }