PHP5 以降、型ヒントを使用して、関数を定義するときに関数が受け取るパラメーターの型を指定できるようになりました。関数を定義するときにパラメーターの型を指定した場合、関数を呼び出すときに、実際のパラメーターの型が指定された型と一致しない場合、PHP は致命的なエラー (Catchable Fatal error) を生成します。
クラス名と配列
関数を定義する場合、PHP はクラス名と配列の 2 つの型宣言のみをサポートします。クラス名 テーブル名 このパラメータで受け取る実パラメータは、対応するクラスでインスタンス化されたオブジェクトであり、配列は受け取る実パラメータが配列型であることを示します。以下に例を示します:
コードをコピーします コードは次のとおりです:
関数デモ(配列 $オプション){
var_dump($options);
}
demo() 関数を定義する場合、関数が受け取るパラメータの型は配列として指定されます。関数を呼び出すときに、次のような呼び出しのように、渡されるパラメーターが配列型ではない場合:
コードをコピーします コードは次のとおりです:
$options='オプション';
デモ($options);
すると、次のエラーが生成されます:
コードをコピーします コードは次のとおりです:
キャッチ可能な致命的なエラー:demo() に渡される引数 1 は配列型、指定された文字列である必要があります
デフォルトパラメータとしてnullを使用できます
注意
特別な注意が必要な点は、PHP は 2 種類の型宣言のみをサポートしていることです。他のスカラー型宣言はサポートされていません。たとえば、次のコードはエラーを生成します。
コードをコピーします コードは次のとおりです:
関数デモ(文字列 $str){
}
$str="こんにちは";
デモ($str)
キャッチ可能な致命的なエラー:demo() に渡される引数 1 は、指定された文字列の文字列のインスタンスである必要があります
概要
型宣言は、特に指定された型の例外をキャッチする場合、オブジェクト指向 PHP の進歩でもあります。
型宣言を使用すると、コードの可読性も向上します。
ただし、PHP は弱い型指定言語であるため、型宣言を使用することは PHP 設計の本来の意図に反します。
型宣言を使用するかどうかは人それぞれの意見ですが、私は初心者ではありません:)。