2016-09-09 12 views
1

パラメータとして渡すことのできるオブジェクトを受け入れる関数を作成したいとします。例えば、Laravel Collection/Arrayです。関数パラメータにこの条件をヒントとして入力する方法はありますか?PHP - Laravel CollectionまたはArrayのヒント型

function test(array $traversable) 
{ 
    print_r($traversable); 
} 

function test(Illuminate\Support\Collection $traversable) 
{ 
    print_r($traversable); 
} 

とのDocblockがiterable typehintをご紹介します

/** 
* Function to do something 
* 
* @param Collection|Array $traversable Traversable parameter 
* @return null Absolutely nothing 
*/ 

答えて

3

PHP 7.1のようになります。

は、私は単一の定義では、次の両方の効果をしたいです正確にそれを行います:

function test(iterable $items) { /*...*/ } 

PHP - rfc:iterableを参照してください。

Traversablearrayの両方を受け入れる場合は、それまでのタイプヒントは使用できません。あなたが行うことができる唯一のことは、それを文書化するために適切な@param注釈を使用することです:

/** 
* @param \Traversable|array $items 
*/ 
function test($items) { /*...*/ } 
関連する問題