でじくる。

主にプログラムの話題などを扱うブログです。

PDOのFETCH_CLASSがprivateなプロパティでも使えるのは便利なのか気持ち悪いのかよくわからない

PHPでデータベースを操作する際に、

私は基本的にPDOを使用しています。

 

PDOには、fetchしてきたデータを指定したクラスに

勝手に詰め込んだオブジェクトを返してくれる

PDO::FETCH_CLASSというオプションがあります。

 

いかにも便利そうなんですが、

何となく思い込みというか常識的に考えて、

データを詰め込むモデルのプロパティは

privateにしてあるからFETCH_CLASSとか使えないんじゃね、

と思い込んでいました。

 

しかし、今日調べ物をしていて偶然見つけたんですが、

privateなプロパティでも勝手に詰め込んでしまうんですね。

 

PDO::FETCH_CLASS and visibility private (private constructor, private property)

https://bugs.php.net/bug.php?id=44337

 

実験してみたら確かにprivateなプロパティにも勝手に詰め込まれいましたし、

またプロパティは当然privateのままでした。