• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:phpのオブジェクト指向でつまづきました・・・)

PHPのオブジェクト指向でデータのやり取りにつまづいた

このQ&Aのポイント
  • PHPのプログラムをオブジェクト指向で書いているが、クラス間のデータのやり取りで問題が発生
  • クラス間のデータのやり取りについては、設定用のクラスから各クラスに値を渡す必要がある
  • 設定用のクラスのインスタンス化や値の管理について理解が不足しており、具体的な使用方法が分からない

質問者が選んだベストアンサー

  • ベストアンサー
  • JaneDue
  • ベストアンサー率75% (263/350)
回答No.3

一人だと「クラスを使う人」と「クラスを作る人」に上手に頭を切替える必要があって、その辺で混乱しているのかも…。 方法として、各クラスを書いてメイン処理を書くのではなく、逆にまずクラスを使う人の立場で、こんな関数があったら便利だな、という感じで メイン(クラスを使う方)から書いてゆき、実際のクラスや関数は後で実装する(クラスを作る人になる)というのも手です。 また「クラスを作る人」になったときは「いつかフリー配布して皆に使ってもらう」ようなつもりで書けば、必要なメンバ変数や関数が見えてくるかも知れません。globalが必要になることもないはずです。 ※最初は自己流でよいので「 UML 」のクラス図を書き出して、一度整理して全体の構造を見直すことをお勧めします。 >設定用の値はクラスにまとめるべきなのかどうか・・・。 あまりピンと来ません。例えば、多言語対応とかで言語によって各種設定が変わるなら分かりますが…。普通に設定ファイルを読み込んで、各クラス・オブジェクトへ必要な値を渡し、取得した結果や生成されたオブジェクトを次へ渡してゆくのではダメなのでしょうか? 「何をどこまでオブジェクトと見なして、どのようにクラスとして切るか」は、物事の見方、洞察・分析力、汎化するセンス、適度な妥協等、ちょっと慣れが必要かも知れません。 今は頭が脱皮している最中だと思います。もう少しで「見えてくる」はずです。 ちなみに以下が良書ですが、今見たら絶版のようで残念。中古も高値みたい。 http://www.amazon.co.jp/PHP%E3%81%AB%E3%82%88%E3%82%8B%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%E5%85%A5%E9%96%80-%E4%B8%8B%E5%B2%A1-%E7%A7%80%E5%B9%B8/dp/4798015164

qazwsx254
質問者

お礼

なるほど。使う人が使いやすいようになどとは考えてませんでしたね。 もう少し汎用性なども考えて使いやすいように、頑張ってみます。ありがとうございました。 ¥ 25,998より これは、、残念ですね。

その他の回答 (2)

  • SexyAkeko
  • ベストアンサー率41% (26/63)
回答No.2

私は、ぶっちゃけ完全に理解はしていないとは思うんですが、オブジェクト指向。 そんな私の意見としては、オブジェクト指向にしたからと行って、利便性はよくなるけど、簡潔にかけるわけではない。 とくに、PHPのような開発環境がメンバの名前を表示してくれたりとかをサポートしてくれないとかえって面倒なことに。 しかし、データをカプセル化ができたり、継承により、柔軟にクラスの使い回しができたり、便利にはなる。 つまり、過去に作ったクラスを、ちょっとだけ変えるのに便利。 なるんだけど、もともとPHPは、変数の型がなかったりと、ナチュラルにポリモーフィズムだったりするので、PHPであえてクラスで作る必要が・・・・ある?とも。 のと、オブジェクト指向といのは、毎回全部自分で作れちゃう、小さいソフトを作ってもたいして変わらないというか、逆に分けがわからなくなる。 やはり、大規模で大人数のプロジェクトで真価を発揮するものだと、、、、 アホな私はそう決めました。 なので、ガンガン関数ベースで書いていってみては? オブジェクト指向がどういう使いかたかが分からないのは、多分経験不足で、とりあえず、使い回しを意識して、グローバル変数は使わず関数で全部書いてみる。 例えば、ファイル読み込み用・保存用の関数とか自作してみる。 で、何度かその使い回しを使っていくうちに、使いまわせない状況ってのが出てくるんだわ。 それを改善できるのが、クラスって考え方で、それがオブジェクト指向に近いんじゃないかなー?と、私は思うんだけど、、、、たぶん、もっと頭のいい人からは、「そんなんじゃねーよーっ!」と言われるかもしれない。www

qazwsx254
質問者

お礼

なんとなくですが、オブジェクトのイメージがはっきりしてきました。 モヤモヤが無くなって気分すっきりです。ありがとうございます。

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

PHPから一旦離れるのはいかがでしょうか? 「PHPでオブジェクト指向」となると、あまり参考書等も出ていないと思います。 例えば、Javaなら、言語+オブジェクト指向の参考書やサイトがたくさんあります。 これらで基礎を身に付けてから、PHPに応用するのがよいのではないでしょうか。

qazwsx254
質問者

お礼

確かに、PHPでのオブジェクト指向の本は全然見ないですね・・ Javaはやった事が無いですが、本を探してみたいと思います。

関連するQ&A