4月 252006
 

なんだかんだで、徐々にその全貌が明らかになってきたOOPの謎。

いやいや、まだ謎だらけだったりしますが、なれてくると結構簡単かもしれない。

requireで読み込むとユーザー定義関数と違って、$_POSTとか$_GETとか使えるし(普通に使えたかな?)、引数で渡してあげる場合も、ユーザー定義関数とほとんど変わらないけど、何よりも、結果をオブジェクトとしてとってこられるのが楽ちん。

結果をオブジェクトとしてとってくるというのはたとえば

class hoge{
var $value01;
var $value02;

function hoge(){

$array = array(‘値1′,’値2′);
$this->value01 = $array[0];
$this->value02 = $array[1];

}

}

というクラスがあったとして、value01,value02に配列の各値をいれてあげる。

取り出すときは、まず、クラスのインスタンスをつくる。

$moge = new hoge();

これは、$mogeはhogeのインスタンスとして定義したという意味。PHPの場合のインスタンスのイメージとしては、あだ名とか、クラスで定義した機能が詰まった箱みたいなのをイメージしたらわかりやすいかもしれない。

で、実はこの時点で、難しいのがコンストラクタという考え方。

おいらの場合は、さっぱりわからなかったのが、このコンストラクタ。

PHP5の場合は__construct(){}とするとコンストラクタになるらしいのだけど、PHP4の場合は、クラスの名前と同じメソッドをコンストラクタとして扱う。

あ、そうそう、コンストラクタというのは、クラスのインスタンスを作ったときに実行する処理のこと。(上のサンプルでは、配列を各プロパティに格納するという処理をしている。)

で、コンストラクタというのは、クラスのインスタンスを定義した瞬間に実行されて、インスタンスを作ったときにすでにプロパティである。value01とvalue02には値が入っている。

で、ここで、OOPのオブジェクトといわれる物が、具体的になんなのかという話で、そもそも、オブジェクトに含まれるものは、

  • プロパティ
  • メソッド

この2つがオブジェクトを形成しているので、クラスのインスタンスを定義したときに、プロパティもメソッドも同時に存在するのです。つまり、先ほど のインスタンスのイメージは箱というのは、インスタンスを定義した時に、通常変数であるはずの$mogeにクラスの機能が入ったという風に考えてあげるこ とができるのです。(ちなみに、あだ名といったのは、クラスのインスタンスを定義するときに、使うとき専用の違う名前を付けるイメージに近い感じがしたか ら)

で、newとやってインスタンスを定義したら、今度はプロパティを呼び出します。

$moge->value01;

こうすると箱と言ったイメージがよりつかめる(気がする)mogeという箱の中の->valueという箱の中身を取り出す。

メソッドの場合も同様に$moge->honya();でメソッドを実行します。

以上、ざっくりと自分流まとめ、しゅうりょ〜。

ツイートツイート

Related posts:

  1. お仕事進まず。
  2. XMLをパースしてRSSを表示!
  3. MySQL的なメモ
  4. PHPでクラスを使ってみる。
  5. MTのコメントをツリー化

 Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

   
© 2011 LEGGODT.COM Suffusion theme by Sayontan Sinha