日記
Zend_Db_Table::findでの戻り値Edit

primary key検索のfindは、引数にスカラーも配列も受け付けるけど、配列の要素が1つしかないときにRowSetじゃなくRowを返す仕様がとてもうざい。

$keys = somefunction(); // 何らかの条件にマッチするkeyの配列を返す
$rowset = $table->find($keys);
foreach ($rowset as $row) {
// 何らかの処理
}

みたいな書き方をしたときに、somefunctionがたまたま一つしか結果を返さなかったときに、$rowsetがRowになっちゃってちゃんと動かない。

配列の要素数を見て戻り値の型を切り替えるのではなく、引数の型がscalarかarrayかで戻り値の型を決める方が妥当じゃないか。

Published At2006-06-18 00:00Updated At2006-06-18 00:00