ホームページ >データベース >mysql チュートリアル >オブジェクト指向プログラミングでクラス内の外部変数 (データベース オブジェクトなど) にアクセスするにはどうすればよいですか?
オブジェクト指向プログラミングでは、クラス内のデータのカプセル化が重視されます。 ただし、クラスがデータベースなどの外部リソースと対話する必要があるシナリオがよく発生します。この記事では、ページネーション クラスを例として、クラス内でデータベース オブジェクトなどの外部変数にアクセスするという課題について説明します。
クラス内から外部データベース オブジェクトに直接アクセスすると、「非オブジェクトに対するメンバー関数 query() の呼び出し」のようなエラーが発生する可能性があります。 これは、構造化されたアプローチの必要性を強調しています。
外部依存関係を管理するための 2 つの堅牢な方法が存在します。
<code class="language-php">class Paginator { protected $db; public function __construct(DB_MySQL $db) { $this->db = $db; } public function get_records($q) { $x = $this->db->query($q); return $this->db->fetch($x); } }</code>
<code class="language-php">class Paginator { public function get_records($q, DB_MySQL $db) { $x = $db->query($q); return $db->fetch($x); } }</code>
依存性の注入は、グローバル変数の使用を大幅に上回ります:
これらの手法を採用することで、開発者はオブジェクト指向プログラム内の外部依存関係を効果的に管理でき、その結果、よりクリーンで保守性が高く、テストしやすいコードが得られます。
以上がオブジェクト指向プログラミングでクラス内の外部変数 (データベース オブジェクトなど) にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。