2012-05-02 13 views
5

関数のパラメータを必要とする方法は、配列などの特定のデータ型ですか?たとえば、次のようなものがあります。PHP。関数のパラメータを配列として要求する方法はありますか?

function example(array $array){} 

これは、すべてのデータ型で同様に機能しますか?私にこれを行う方法を示す良いリソースはありますか?

+5

しません。あなたはマニュアルに記載されています。あなたの宿題を最初にしてください。あなたの宿題を最初にしてください。あなたの質問にもっと詳しく答えます。 – hakre

+0

http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/#functions – maialithar

答えて

3

編集ヒンティングの種類を見ている:はい、あなたは配列で、ヒントを入力できますが、ので、私の答えを編集し、それに応じて変更。

あなたがしたいことは、type-hintingと呼ばれます。ヒント基本データ型は、int,string,boolなどと入力することはできません。あなたはarrayまたはオブジェクトとのインタフェースと、ヒントを入力することができます。

function example_hinted1(array $arr) { 

} 

function example_hinted2(User $user) { 

} 

example_hinted1(5)を呼び出すと、PHPの致命的なエラー(例外ではない)を生成しますが、配列を渡すことを呼び出すことは全くokです。あなたはあなたの関数内のコードでこの動作をシミュレートすることができます機能にはいくつかの引数が基本型からのものであることを確認する必要がある場合は

:だから

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()); 
+0

よく説明してくれてありがとうございました。 –

関連する問題