
間違えて違うカテゴリーに質問してしまったので、
そちらを削除して、質問させていただきます(レスも幸いなかったため)。
PHPを勉強して1ヶ月の初心者です。
ホームページを作ろうとして、本に書いてあったプログラムを元に、
付け足したり、削ったりしていました。
そして、プログラムが長くなってきたので、外部ファイルに処理を分割してみました。
どの本にも、「クラス」「オブジェクト指向」という言葉が強調されていたので、
とりあえずクラスにしてみました。
しかし、クラスの中で処理をした変数を取り出すのが手間に感じます
(クラス内では「$this->変数名」、クラス外では「$クラス名->変数名」と書く手間が・・・)。
本の中には、クラスを使わずに、
ユーザー定義関数のみのfunctionをまとめた外部ファイルを
作成している例が多い気がします。
そこで質問なのですが、
処理を分割して外部ファイルにするとき、
「メソッドをまとめたクラス」にした方がいいのでしょうか?
それとも、「ユーザー定義関数をまとめたもの」にした方がいいのでしょうか?
また、「こうゆう場合は、クラスにした方がいい」「ユーザー定義関数にした方がいい」などの
条件がありましたら、教えていただきたいです。
本やネットを調べても、使い分けについて書かれているページがなく、
今後の作成のためにも、ぜひ知っておきたいです。
すべてクラスにした方が今後よいようでしたら、全部クラスのままで作れるよう、
慣れていきたいとも思ってもいます。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
この質問の回答は本1冊必要です。
共通のデータを持つ関数群を1つのクラスにする、
という考え方がいいでしょう。
つまり、グローバル変数を持ちたくなったらクラ
ス化を考える、ということです。
グローバル変数は、関数外の変数と捉えたらいい
でしょう。
複数の関数が同じデータを複数使い、引数でデー
タを渡すには煩雑すぎ、構造化(struct)で渡し
たくなったり、引数で渡さないで関数外の変数を
共通に使いたくなる場合です。
それらをクラスにまとめ、変数はクラス内のメン
バ変数にする訳です。
その意味、理由は説明する文字数が多過ぎて書け
ません。
いくつかのクラスで、$_SESSIONを持ちまわしていたときは、
変数の扱いがとても楽でした。
そうゆう、グローバル変数が増えてきた場合は、
クラスにしていくとよいのですね。
ありがとうございます^^
No.2
- 回答日時:
>こうゆう場合は、クラスにした方がいい
・複雑なことをまとめたいとき
・一度つくったコードを再利用したいとき
※いろんな競合に嫌気がさして慣れてくるとほとんどクラスを
つかうことになります。
>ユーザー定義関数にした方がいい
・簡単なことをするとき
※「hello world」を表示するのにクラスはいりませんね。
競合、というのは初めて見る言葉でした。
この場合、メインのphpとクラスの間で、
同じ変数名をつけても競合が起きないのを、
逆に利用する、という意味でよろしいでしょうか。
本の中では、MySQLへの処理をクラスにまとめていました。
MySQLへの命令文を、一括して$sqlで処理していたので、
それも同じ意味があったのだろうな、と今、気づきました。
複雑なものについては、まだ経験がないのでわかりませんが、
心に留めておくようにします。
ありがとうございます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「クラス関数」「メンバ関数」...
-
ラッパークラスって何ですか?
-
phpのクラスメソッドの定義が長...
-
Re: Cookieを使ってオブジェク...
-
拡張子php画像をjpg画像等に変...
-
GD(php)での image関数 イメ...
-
php.ini を設定を変更すると再...
-
「クラウドにアップロード」」...
-
Illustratorで文字と画像を流し...
-
ランダムな文字列の含まれた画...
-
CFileDialogの最初のディレクト...
-
xamppを使う場合のphpファイル...
-
mPDFでのPDF出力がうまくいかな...
-
PHPから別なPHPへ移動(?)する方法
-
そろそろお願いします
-
header(Location:~)で$_SESS...
-
空メールの作り方教えて欲しい...
-
cakephpでのダウンロード機能の...
-
Wordpressの質問です(テーマエ...
-
文字列の一部を取り出したいの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「クラス関数」「メンバ関数」...
-
ラッパークラスって何ですか?
-
考えてみれば、ポリモーフィズ...
-
※staticと$thisの違いは何ですか
-
$thisとコンストラクタについて
-
プラグインについて
-
OOPの実践の入門に良いサイトは...
-
インタフェースとは
-
PHPによるHTMLの解析
-
静的プロパティと静的メソッド...
-
phpのクラスメソッドの定義が長...
-
PHP4、PHP5 1ファイル複数クラ...
-
クラスについて
-
phpでクライアントのブラウザの...
-
Re: Cookieを使ってオブジェク...
-
Codeigniter コアクラスの継承
-
非オブジェクト指向で開発中の...
-
PHP,privateの使用理由について
-
オブジェクト指向はなぜそんな...
-
クラス
おすすめ情報