[ PHP ] タイプヒンティング 関数のパラメータに型を指定する ( Catchable fatal error )

Pocket

ここでは、PHP の関数に型を指定するサンプルを掲載しています。型指定はないよりは、あったほうが良いと個人的には思います。

スポンサーリンク

PHP では、関数の型を指定することなく、どのような型でもパラメータに渡すことが出来ます。 関数内で型をチェックしてそれぞれの処理をすることも出来ますが、やはり型は決まっていたほうがよい場合もあると思います。

PHP5.1 以降では以下のようにパラメータの型がオブジェクト(クラス)や array の場合であれば型を定義することができるようになりました。

関数のパラメータの型を指定するサンプル

function test(array $params)
{
    echo 'ゴーカイジャー';
}

$params = array('1', '2');
test($params); // 正常

test(1);       // エラー(型が違う)
Catchable fatal error: Argument 1 passed to test() must be an array, integer given, called in ・・・

型を指定した関数に対して異なる型をパラメータに渡すと、上記のようにエラーとなります。

Catchable fatal error: Argument 1 passed to test() must be an array, integer given, called in ・・・

昔の PHP ではどうなる

PHP5.1 以前で型を関数のパラメータに指定すると以下のエラーが発生します。

Parse error: parse error, unexpected T_ARRAY, expecting ‘&’ or T_VARIABLE in ・・・

参考
スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *