PHPのクラスで下記のようなエラー内容を返すメソッドを作る場合、名前を付けるとしたら getError()、getErrors()どちらが適切なのでしょうか?


・引数がない場合、全てのエラーメッセージを配列で返し、引数を与えた場合は対応するエラーメッセージを返す
$array = $this->getError(); ※配列で返される
$message = $this->getError('hoge'); ※hogeのエラーメッセージ(文字列)

宜しくお願いします。

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2011/06/11 09:32:58
  • 終了:2011/06/11 12:35:00

回答(3件)

id:dothan No.1

どたん回答回数145ベストアンサー獲得回数252011/06/11 09:54:15

ポイント34pt

単数(文字列)も複数(配列)の一部だと考えて、getErrors() が無難かと思います。


ただ、戻り値が文字列と配列の二通りあるというメソッドは見たことがありません。

これだと戻り値を利用する時点で getErrors() の引数の有無を確認しなければならないという流れになるので、普通はやらないことです。

私は

$array = $this->getErrors();
$message = $this->getError('hoge');

のように分けた方が良いと思います。


関数の命名で苦労されているということは、本当は、その関数の仕様に疑問を抱いた方が良いと思います。

id:xxmasaxx

メソッドの戻り値が二通りあるのはスマートなやり方ではないということですね。

参考にさせて頂きます。回答有り難うございます。

2011/06/11 11:32:22
id:a-kuma3 No.2

a-kuma3回答回数4596ベストアンサー獲得回数19352011/06/11 09:56:43

ポイント33pt

ぼくなら、二つのメソッドを作ります。

配列を返す方を getErrors() で、文字列ひとつを返す方を getError()。


実装が二つに分かれるのが嫌だ、というのもあるのでしょうが、

getError() の実装が、getErrors() を呼び出すようになっていれば、

エラーメッセージの定義を探してくるところは一ヶ所にできると思います。


# こういうところにこだわってるのって、好きです :-)

id:xxmasaxx

少しでも直感的に内容が理解できるソースを書きたいので、こういったアドバイスはありがたいです。回答どうも有り難うございました。

2011/06/11 11:40:04
id:jack_sonic No.3

じゃっくそにっく回答回数123ベストアンサー獲得回数252011/06/11 12:02:22

ポイント33pt

自分の場合、getError/getErrorsだと、

戻り値の型が何かのクラスオブジェクトである可能性

(例外オブジェクトのように)

を疑ってしまうので、戻り値の型を明確化するために

getErrorMessages()

getErrorMessage(str)

にすると思います。

id:xxmasaxx

確かにgetErrorだと、どんなエラーが返ってくるのか予測できませんね。

回答どうも有り難うございます。

2011/06/11 12:34:20

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません