人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

宜しくお願いします。

●質問者: xxmasaxx
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:hoge MESSAGE PHP エラー エラーメッセージ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● どたん
●34ポイント

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


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

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

私は

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

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


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

◎質問者からの返答

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

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


2 ● a-kuma3
●33ポイント

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

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


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

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

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


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

◎質問者からの返答

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


3 ● じゃっくそにっく
●33ポイント

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

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

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

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

getErrorMessages()

getErrorMessage(str)

にすると思います。

◎質問者からの返答

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ