関数に渡すパラメータの数が多すぎるとPHPがエラーを投げないのはなぜですか?

私はPHPでn00bです。私はDefault Parametersについて学んでいたので、この機能を作った。

function doFoo($name = "johnny"){
    echo "Hello $name" . "
"; }

私はこれらの電話をした

doFoo();  
doFoo("ted");  
doFoo("ted", 22); 

最初の2つは、予想されたもの

Hello johnny  
Hello ted

3番目の呼び出しも印刷されています

Hello ted 

私は2つの引数で呼び出すのに対し、すべての関数が1つの引数に対して行われた後、エラーを期待していました。
なぜエラーはなかったのですか?

10
phpではこの種の関数を使うことができるからです: it.php.net/func_get_args
追加された 著者 dynamic,

3 答え

関数のオーバーロードでPHPがエラーをスローしません。

15
追加された
bugs.php.net/bug.php?id=13892 によると、それはWONTFIXだ
追加された 著者 rink.attendant.6,

PHP関数は可変数のパラメータをサポートするためです。

3
追加された

通知だけを出力すべきですが、エラーは表示されません。 私はあなたのエラー報告が画面に表示されないように設定されていると思います。

これをコードの上部に貼り付けてください:

error_reporting(E_ALL | E_STRICT);
2
追加された
誰がまだそれを上回っているのですか?
追加された 著者 Your Common Sense,
私が見る限り、これは間違っています。最も厳しいエラー報告設定を設定しても、通知はありません。
追加された 著者 arvixx,
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com