PHP5タイプヒント
PHP5ではタイプヒントが導入されています。関数は、パラメーターを強制的にオブジェクトにすることができるようになりました(関数プロトタイプでクラスの名前を指定することにより)またはarrays
( PHP 5.1以降)。ただし、NULL
がデフォルトのパラメータ値として使用されている場合は、それ以降の呼び出しの引数として許可されます。
上記からの次の抜粋:
がデフォルトのパラメータ値として使用されている場合NULL
、それ以降の呼び出しの引数として許可されます。
上記の意味は次のとおりです。
デフォルトパラメータをタイプヒントとともに使用する場合はNULL
、デフォルト値としてのみ持つことができます。
つまり、code1のコードが間違っており、次のようになります。
致命的なエラー:クラスタイプのヒントを持つパラメータのデフォルト値は、NULL
code1:
function setName ( string $name = "happ") {
...
}
code2のコードが正しいのに対し:
code2:
function setName ( string $name = NULL) {
...
}
この制約がphpで割り当てられているのはなぜですか?