0

PHPクラスのコンストラクターにMySQLi接続ファイルを含めています。このクラスのメソッドで接続変数に到達する必要があるため、変数をグローバルにする必要があります。私はいつもグローバル変数が悪いと聞きました。だから私は、これがこれに対処する唯一の/最良の方法であるのだろうか?

class CheckUser {

  function __construct() {
     require_once('mysqli.php');
  }

  function checkEmail($email) {
     // sql code here
  }

}
4

1 に答える 1

1

それはただのミームです。(そして、依存性注入がすぐにやってくる...)

接続ハンドルは中心的なリソースです。そのまま使用してください。グローバル変数は完全に問題なく、そのために意図された言語構成です。データベース/接続が1つしかない限り、それは理にかなっています。

$_GETグローバル変数が悪ければ、と$_POST実際のグローバル変数)はありません。

クラス(ここで推測)がデータベースクエリへの中央アクセスポイントである場合、単純なプロパティとしてハンドルをキーイングすることは、同じように大げさです。

  function __construct() {
     require_once('mysqli.php');
     $this->db = $db;
  }

mysqli.phpまたは、スクリプトが作成したローカル変数。

于 2012-06-17T13:16:02.533 に答える