- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:クラス内のメンバ関数から他クラスのメンバ関数を利用)
クラス内のメンバ関数から他クラスのメンバ関数を利用する方法
このQ&Aのポイント
- PHP 5.3.8で、MySQLデータベースに関する処理をする Database クラスと、ファイルのアップロード処理をする FileUpload クラスがある場合、ファイルのアップロードが完了したら、そのファイル名をデータベースに書き込む処理をしたいです。
- FileUpload クラスの関数内で逐一Databaseクラスをインスタンス化するか、予めインスタンス化したものをグローバル変数として利用するか、Databaseに対するサブクラスとしてFileUploadをextendsするなどの方法が考えられます。
- クラスに関する知識がない場合でも、FileUploadクラスのインスタンスを作成し、そのインスタンスを利用してDatabaseクラスのメンバ関数を呼び出すことで、処理を綺麗にまとめることができます。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
もう時間たっちゃってるけど、方法としては 1. 同じスコープにいるならFileUploadクラスにDatabaseクラスを引数として入れる。またはその逆。 2. Databaseクラスがその時他の処理で使わないならFileUploadクラスの中でインスタンス生成して使う。 3. Databaseを静的クラスに突っ込んで(レジストリ)FileUploadから呼び出す。 4. 機能的に繋がりがあり一体化に違和感がなければExtendすればいいんじゃないですか。
お礼
ご意見ありがとうございます。 この中だと自分の場合4のExtendするのがしっくりくるような気がします。 3の方法も扱いが難しいですが構造がしっかりしてれば良さそうですね。