こんにちは!
ナビゲータのEVEです。
価格:3,740円 |
本日は、PHPでのオブジェクト指向開発について検討をしました。「独習PHP」には、どんな事が書かれているのか見てみましょう。
[PHPのオブジェクト指向言語でデータを利用する]
Java同様にアクセス修飾子を利用できます。しかも、今までPHPでは、ほとんど意識したことがない型も宣言することができます。カプセル化とか利用する場合等において、アクセス修飾子を利用しなければならないのは理解できるのですが、型をわざわざ指定するのは、意外性を感じています。実は、型を意識しないことにより生産性がJavaよりよいことに喜んでいたからです。今後、オーバーライドの時には、必要になるケースがありますが・・・?そのためだけに、作ります・・・?型・・・・?
<利用できるアクセス修飾子>
・public
・protected
・private
<利用できるデータ型>
・string
・文字リテラル
・bool
・int
・float
・array
・object
・callable ← これ何?
・resource ← これ何?
・null
全く見たことないデータ型がでてきて、めんどくささ爆発です。
[PHPのオブジェクト指向言語でメソッドを利用する]
メソッドは、Javaと似ているかな?っといった印象です。ただ、後で動的にインスタンスにメソッドを追加できるとは???この機能、Javaにあったっけ?っと言うことで現在調べています。その他、新しい考え方がでてきていて、クラス、メソッドについては、もう一度読まないといけないようです。
全く、Javaと違うのは、コンストラクターの指定方法・・・。Javaはクラス名と同じメソッド名を指定していましたが、PHPでは、コンストラクター名はどのクラスでも同じモノを利用します。「__construct」なのですが、まっ、この辺は、どっちでもかまわないって感じではないでしょうか?ただ、引数は返してはいけないと記述されていました。Javaはどうだっけ?
それと、デストラクターを指定することができます。デストラクターとは、オブジェクト破棄時に実行される処理で、メソッド自体は、publicにすることが必須です。そして、戻り値は指定しないそうです。これは、Javaにはない機能なのですが、C++には実装されています。PHPのプログラム内でDBクローズをした記憶がないのですが、DBのクラスでここに、closeを指定すれば、明示的にDBをクローズができそうです。なお、PHP5までは、オブジェクト廃棄時に自動でDBクローズするため、その必要はありませんでした。PHP8ではどうなっているのか分からないので、ここにクローズ処理を実装しましょう!
そして、気になったのが、メソッドに、function定義がある・・・。他の言語では、オブジェクト指向の記述と、普通のプログラムを区別するときに、function定義をするかしないかでしていたような気がしたので、ちょっと、違和感を感じます。
っといった感じで、「独習PHP」を読みすすめています。本日は、抽象クラス、インターフェースまで読み終えて、後、重要なところは、例外処理の所かな?っと言ったところです。本日は、残りの部分を書く時間がないので、今日はこの辺にします。
続きは、また明日!
では、また!!!