端くれプログラマの備忘録 PHP [PHP] PDOでクラスをフェッチする場合にコンストラクタが呼ばれるタイミング

[PHP] PDOでクラスをフェッチする場合にコンストラクタが呼ばれるタイミング

PDO::fetch()でクラスをフェッチする場合の注意点。クラスのコンストラクタでインスタンスの初期化処理(たとえばメンバー処理の初期化など)をしている場合には注意が必要。

$stmt->setFetchMode(PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE, 'stdClass');

PDO::FETCH_PROPS_LATEを指定した時は、クラスのコンストラクタが呼ばれた後にプロパティに値がセットされる。

$stmt->setFetchMode(PDO::FETCH_CLASS, 'stdClass');

PDO::FETCH_PROPS_LATEを指定しないときは、クラスのプロパティに値をセットした後にコンストラクタが呼ばれる。

参考サイト

PHP – PDOでオブジェクトをフェッチ&JSONとCSVファイル出力 – Qiita
http://qiita.com/k-holy/items/ce829a60cafe48bd1f81