質問: PHPで、データベースにアクセスする関数を使用する際に、PDOオブジェクトを利用するため自分はこのように使用していました。 ``` function hogehoge($str){ global $pdo; //以降処理~ } ``` しかし、「globalは処理速度が遅くなるからこう書いたほうがいい、このような記述のほうがいい」と指摘を受けました。 ``` function hogehoge($pdo, $str){ //以降処理~ } ``` ただ、この指摘をした人は「C言語がそうだったから」という理由で、PHPに関しては分からないけどね。と最後につぶやいてました。 あくまで個人的な意見なのですが、引数を実際しようする時にデータベースを使用するかしないかでPDOオブジェクトを引数で渡すのは見栄えが悪いと思っているので、できれば前者の処理がうれしいです。 「globalの使用は読み込みを遅くさせる」といった情報が調べても見つからなかったので、teratailの方なら何か知っているかなと思いご質問させていただきました。 もし何かご存知の方がいればコメント頂けるとうれしいです。
回答: (解決済みですが書き途中だったので記載しますね。) 極端に遅くなることはないと思います。 しかしオブジェクトの再利用のためにglobalを多発するのは将来的に見栄えが悪くなりそうです。 DB接続用のクラスを作成し、コンストラクタ内でPDOオブジェクトを生成し DBインスタンス取得用のメソッドをシングルトンパターンで実装するのがよくあるパターンでしょうか。