質問: こんにちは。 初心者プログラマーです。 最近PHPで簡単なウェブサービスを作っているのですが、PHPでのクラスの必要性がイマイチ理解できません。(今は小規模な物であり、尚且つ基本的なところをやりたいと言ったところで、生PHPで開発しています。) オブジェクト指向そのものは何となく理解できているのですが、クラスの有効的、効果的な使い方が分からないのです。 **どっかで関数を定義して引数で投げれば良いんじゃないの?** ってなってしまうんです。 でも実際にはPHPで開発されているサービス等で今やクラスを利用せずに開発されているものは無いに等しいと思います。恐らくそれだけのメリットがあるからでしょう。 具体例などと合わせて、クラスの有用性をご教授頂ければ幸いでございます。
回答: 生のPHPで書いて1ファイルで済むくらいの、小規模なプログラムであれば、クラスを切り出すことへのメリットはそこまで感じられないかと思います。 ただ、プログラムの規模が大きくなってくると、規模比例よりひどい形で、プログラミングが複雑となってきます。 そのような状況下でコードとデータを「オブジェクト」という単位にまとめることで、 * モジュールとして外部から使う場合に、「オブジェクト」単位で見られるようになるので、考えることが減る * オブジェクト内部の変数も、(必要とあれば)メソッドからしかアクセスできないようにすることで、不必要な依存性を作ることを避けて、クラス内部での整合性確保やクラス外とのインターフェースの簡略化に役立てる などのメリットがあります。 もちろん、関数だけでもこのようなプログラミングは、やろうと思えばできます(C言語でそのような枠組みを組み立てる、GObjectというライブラリもあります)。とはいえ、「運用ルール」として作ったところで往々にして破られるものですので、言語側のルールとして組み立てられるクラス構造は有用です。