PHP5 引数の型を指定する
notoです。
オープンソースを眺めていると、引数で型を指定しているのを見かけたことありませんか? マニュアルをみるとタイプヒンティングと呼ばれているようです。
タイプヒンティングを軽く検証してみました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
|
setAnimalメソッドの引数をLion型に制限しています。定義方法は、クラス型 変数で定義します。 Javaと同じですね。
Lion型を渡してねと定義されているsetAnimalメソッドにCat型を渡してみました。
1
|
|
Cat型を渡すんじゃねーよ。Lion型寄越せと怒られます。 ではLion型を渡してみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
|
1
|
|
Lion型が渡されたので、Fatal Errorが発生することなく正しく処理されました。
もちろんインターフェースもいけますよ。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
|
1 2 |
|
注意点としては、
タイプヒントは、object型やarray型 (PHP5.1以降) でのみ使用できます。 int および stringのような 通常の型でのタイプヒンティングはサポートされません。
array型縛れるのはいいですね。個人的にはphpでも型は意識すべきだと思っているので利用できるところは利用したいと思います。