2017-05-23 22 views
1

私はちょうど1つの質問を持っています - >すべてのパラメータを関数内のデフォルト値で定義することは良いでしょうか?私はそれは悪い習慣だと思うが、私は同僚と少し議論する。常に関数宣言でデフォルト値を持っています

だから、どちらかである:よりよい/

public function getTestByUser($int_user_id, $limit, $offset) 

または

public function getTestByUser($int_user_id = 0, $limit = 0, $offset = null)

より良いですか?

なぜそう思うのですか?

ありがとうございます。

+1

これにより、意図しない結果が得られないようになりますが、処理のエラーが隠され、多くのことを教えてくれるでしょう。 – marmeladze

+0

だと思います。 'public function getTestByUser($ int_user_id = 0、$ limit = 0、$ offset = null)' これは**デフォルトの引数値により優れています**可変値関数のパラメータとしてデフォルト値をとります – Nidhi

答えて

2

あなたのニーズによって異なります。関数変数にデフォルト値を使用することは、実際には悪いことではありません。

名前を変数に変更しないでください。 PHP7のスカラー型宣言機能を使用することができます。

例えば:

public function getTestByUser(int $userId, int $limit = 0, int $offset = null) 

いけない」あなたのphpファイルの先頭にdeclare(strict_types=1);を追加するのを忘れ。厳密に定義された変数型を使用すると、コードがより強固になります。

+0

私はあなたの意見に同意しますが、なぜuserIdは0であるべきですか?私はむしろ、彼らがどこから来ているのかわからない結果を得る代わりに関数を間違って呼び出す際に "処理"エラーを起こすだろう – Dewstar

+1

右、あなたはuserIdのデフォルト値を使うべきではありません。私はコードを修正した。値が必須で、値なしで動作しない場合はデフォルト値を使用しないでください(例:ユーザーID) –

関連する問題