引数エラーの処理 その2

前回引数のエラーチェックは無しの方向でと言ったが、データベースを扱うクラスなどでは、データをミスで書き換えた場合のダメージが大きくなるのも事実。
そこでやっぱり、データの書き込みの発生するメソッドに対しては、最低限のエラーチェックはしたい。引数の妥当性をチェックし、不正な場合はPEAR_Errorを返すようにするのが良いと思われる。
また、引数をリファレンスで渡して、値をいじるものについても、エラーチェックが必要だろう。
引数の型チェック時のエラーメッセージは、PHP本体とそろえておくと良いだろう。以下のメッセージが典型的のようだ。

function() expects parameter 1 to be string, object given.

データの読み出し等については、エラーチェックしないで良いだろう。ただし、引数が文字列や数の場合は、関数定義の冒頭でキャストしてやることで、一部noticeが出るので、デバグの役に立つ。たとえば、配列を文字列にキャストした場合、以下のNoticeが出る。

Array to string conversion in ...

エラーチェックに関係ないが、オブジェクトを配列にキャストすると「プロパティ名」=>「プロパティ内容」という配列に変換されるということは知らなかった。並び順の情報の必要でない純然たるHashとしてオブジェクトが使えるのね。Zoganに反映したいところである。