2

PHPのドキュメントから、次の関数に出くわしました:

string number_format ( float $number , int $decimals = 0 , 
                       string $dec_point = '.' , string $thousands_sep = ',' )

この関数は、1 つ、2 つ、または 4 つのパラメーターを受け入れます ( 3 つではありません)。Warning: Wrong parameter count for number_format()3 つの引数が渡されると、関数は関数呼び出しの行で警告を生成します。

私が理解していることから、オプションのパラメーターは完全にオプションである必要があります。また、php は関数のオーバーロードをサポートしていないため、これを実現するために 2 つの異なる関数を作成できました。

私の質問は次のとおりです。

  1. 関数宣言自体(関数コード内ではなく)で上記のように引数の数を制限することは可能ですか?

  2. そうでない場合、および上記の関数がtrigger_error()警告を生成するために使用する場合、生成された警告は、この関数が呼び出されているファイルと行をどのように参照しますか。trigger_error()関数は、呼び出された行で警告/エラーを生成するようです。

4

1 に答える 1

0

この関数は、3 つのパラメーターがあるかどうかのチェックを追加するだけです。

3 つのパラメーターが送信されると、警告が生成されます。

に似ている :

if(func_num_args() == 3) {
  trigger_error('Wrong parameter count for number_format()', E_USER_WARNING);
}

参考:func_num_args()trigger_error()

于 2013-05-07T04:09:40.167 に答える