PDOで指定したクラスにデータを割り当てて取得するには、\PDO::FETCH_CLASSをMyPdo::fetch, MyPdo::fetchAllメソッドの引数に指定すれば簡単に実現できます。 通常はPDO::FETCH_ASSOCを指定して、array形式でデータを取得する方が手軽ですが、classでデータを扱うと、下記のメリットがあります。 arrayよりもclassでデータ取得した方がメモリ使用量が少ない arrayよりも、どんなデータを扱っているのかが明確になる それでは、\PDO::FETCH_CLASS使用例を下記に示します。 <?php $sql = <<<EOF SELECT id, name, weight, price FROM table_prodict EOF; $conn = new MyPdo(....); $conn->prepare($sql); $stmt = $conn->execute(); // クラスは第2引数で指定 $stmt->fetchAll(\PDO::FETCH_CLASS, Product::class); Porductクラスは下記を想定しています。 <?php class Product { public $id; public $name; public $weight; public $price; } \PDO::FETCH_CLASSの挙動についての補足です。 クラスを特に指定しないと、取得したカラムに対応したプロパティを持ったstdClassのインスタンスで結果が返ってきます。 指定したクラスに、クエリから取得したカラムに対応したプロパティがない場合(例えば、上記のProductカラムに$priceプロパティがない場合)は、動的にプロパティが定義されて取得したデータがセットされます。 \PDO::FETCH_PROPS_LATEを使うとプロパティにデータをセットする前に、クラスのコンストラクタが呼ばれます。クラスの事前処理が必要な場合に指定すると便利です。 クラスのプロパティ定義がprivateでも正しくデータはセットされます😲
古いオーディオドライバーをアンインストールしたのですが、どういうわけかコントロールパネルにアイコンが残ったままになってしまいました。 実害はないので無理に削除する必要もありませんが、気になったので削除する方法を調べてみました。 蛇足ですが、消したかったのはサウンドカードのSE-90PCIを使うときにインストールしたEnvy 24関連のコントロールパネルのアイテムです。 Googleで検索すると下記の方法がみつかりました。 (方法1) レジストリエディタを使って項目を削除する タスクバーの検索ボックスから Regedit と入力してレジストリエディタを起動。 下記のキーを探す。 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace KEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace クリックして{Default}の欄を見ながら、消したいアイテムを探して削除。 (方法2) レジストリエディタを使って項目を隠す 今回はアイテムを削除したいので目的と合致しませんが、コントロールパネルからアイテムを隠すこともできるようです。 詳細は レジストリエディタを使う方法 を参照してください。 組織で管理しているパソコンの場合は、管理者がPolicyを設定して管理することもできるようです。 詳細は Windows 10 Enterpriseで管理者が実施する方法 を参照してください。 (方法3) cplファイルを削除する C:\Windows\System32 、 C:\Windows\SysWOW64 の各ディレクトリに対して、検索ボックスに .cpl と打ち込んでコントロールパネルの項目を抽出。1つずつファイルを見てそれっぽいものを削除する。 Windows標準のものがほとんどなので、いきなり削除するのではなく、対象と思われる.cplをディレクトリから移動して間違いないか確認してから削除する方が無難だと思います。 Windows標準のものは下記のものがあるので、下記のリストに含まれるもの