間違えて違うカテゴリーに質問してしまったので、
そちらを削除して、質問させていただきます(レスも幸いなかったため)。
PHPを勉強して1ヶ月の初心者です。
ホームページを作ろうとして、本に書いてあったプログラムを元に、
付け足したり、削ったりしていました。
そして、プログラムが長くなってきたので、外部ファイルに処理を分割してみました。
どの本にも、「クラス」「オブジェクト指向」という言葉が強調されていたので、
とりあえずクラスにしてみました。
しかし、クラスの中で処理をした変数を取り出すのが手間に感じます
(クラス内では「$this->変数名」、クラス外では「$クラス名->変数名」と書く手間が・・・)。
本の中には、クラスを使わずに、
ユーザー定義関数のみのfunctionをまとめた外部ファイルを
作成している例が多い気がします。
そこで質問なのですが、
処理を分割して外部ファイルにするとき、
「メソッドをまとめたクラス」にした方がいいのでしょうか?
それとも、「ユーザー定義関数をまとめたもの」にした方がいいのでしょうか?
また、「こうゆう場合は、クラスにした方がいい」「ユーザー定義関数にした方がいい」などの
条件がありましたら、教えていただきたいです。
本やネットを調べても、使い分けについて書かれているページがなく、
今後の作成のためにも、ぜひ知っておきたいです。
すべてクラスにした方が今後よいようでしたら、全部クラスのままで作れるよう、
慣れていきたいとも思ってもいます。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
この質問の回答は本1冊必要です。
共通のデータを持つ関数群を1つのクラスにする、
という考え方がいいでしょう。
つまり、グローバル変数を持ちたくなったらクラ
ス化を考える、ということです。
グローバル変数は、関数外の変数と捉えたらいい
でしょう。
複数の関数が同じデータを複数使い、引数でデー
タを渡すには煩雑すぎ、構造化(struct)で渡し
たくなったり、引数で渡さないで関数外の変数を
共通に使いたくなる場合です。
それらをクラスにまとめ、変数はクラス内のメン
バ変数にする訳です。
その意味、理由は説明する文字数が多過ぎて書け
ません。
いくつかのクラスで、$_SESSIONを持ちまわしていたときは、
変数の扱いがとても楽でした。
そうゆう、グローバル変数が増えてきた場合は、
クラスにしていくとよいのですね。
ありがとうございます^^
No.2
- 回答日時:
>こうゆう場合は、クラスにした方がいい
・複雑なことをまとめたいとき
・一度つくったコードを再利用したいとき
※いろんな競合に嫌気がさして慣れてくるとほとんどクラスを
つかうことになります。
>ユーザー定義関数にした方がいい
・簡単なことをするとき
※「hello world」を表示するのにクラスはいりませんね。
競合、というのは初めて見る言葉でした。
この場合、メインのphpとクラスの間で、
同じ変数名をつけても競合が起きないのを、
逆に利用する、という意味でよろしいでしょうか。
本の中では、MySQLへの処理をクラスにまとめていました。
MySQLへの命令文を、一括して$sqlで処理していたので、
それも同じ意味があったのだろうな、と今、気づきました。
複雑なものについては、まだ経験がないのでわかりませんが、
心に留めておくようにします。
ありがとうございます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/06 09:28
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- その他(プログラミング・Web制作) どういうプログラムで組みますか?google colabでやってるんですけど、出来る方お願いします。 1 2022/07/17 18:41
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- その他(プログラミング・Web制作) このプログラミングをどう組みますか? Googlecolabでやってるんですが、出来る方お願いします 1 2022/07/13 10:52
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- 中学校 終わった…。 中2です。いろいろと終わりました…。 1つ目が塾…。私の塾では学校のテスト前(中間テス 10 2022/05/24 17:55
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- Visual Basic(VBA) Excel のユーザー定義関数でソルバーが動作しない 1 2022/09/05 19:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「クラス関数」「メンバ関数」...
-
配列とオブジェクトの違い
-
ラッパークラスって何ですか?
-
phpのクラスメソッドの定義が長...
-
php インスタンスとオブジェク...
-
onedrive にexcelファイルをア...
-
フォントの色を変えるには?
-
バッチを用いたフォルダの自動移動
-
phpとaspの違いについて
-
form actionで二つ送信先を指定...
-
phpで画像がどうしても文字化け...
-
透過PNGが透過されない!!
-
PHP8を使うと、大量のWarningが...
-
index.phpって何ですか? 具体...
-
PHPで、エラーがない場合のみ画...
-
これの対応OSを教えて下さい。p...
-
ワードプレスサイト PHP8.0.25...
-
PHPからロリポップ!のメールサ...
-
PHPで複数ファイルのダウン...
-
PHPをhtmlに読み込んだファイル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「クラス関数」「メンバ関数」...
-
ラッパークラスって何ですか?
-
phpのクラスメソッドの定義が長...
-
class定義のphpをファイル分割...
-
PHP4、PHP5 1ファイル複数クラ...
-
phpのクラスにて別ファイルの変...
-
'_'(アンダースコア)の使い方...
-
コンストラクタで参照渡しをす...
-
データベースで値をインクリメ...
-
クラス
-
【PHP】クラス と 関数 の違い
-
ユーザ定義関数にデフォルト引...
-
PHPのフレームワークの中でSmar...
-
phpのオブジェクトの使用方法に...
-
phpでクライアントのブラウザの...
-
配列とオブジェクトの違い
-
POSTとGET
-
Codeigniter コアクラスの継承
-
外部ファイルのクラスのインス...
-
class.upload.phpの戻り値(返...
おすすめ情報