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のままでした。