PHP(クラス)、コードレビュー

今日はPHPで新しい分野に突入〜!!ズドドドド〜!!
その名も、クラス。
ここは、結構山だと思う。
しかも、先輩が口を酸っぱくして、「クラスはマジ大事!!」って言ってます。
この山を、どうにか乗り越えたいなぁ。

『本日のメニュー』
PHP(クラス)
■コードレビュー



PHP(クラス)
□クラスとは…
そもそもクラスと言うのは何かといいますと、何かを実行する物体の設計図のようなものです。何かを実行するというのは、例えば車であれば人を乗せて走りますし、テレビであれば放送を受信して画像と音を出すということを実行します。クラスというのはそれらの設計図と言うわけです。

クラスを使う場合と使わない場合のプログラミングの違いは何かというと、クラスを使わない場合にはプログラムによって行いたいことを全て自分一人で一つ一つ実行するようなものです。それに対してクラスを使った場合には、目的にあわせてそれを実行してくれるような物体の設計図を作成し、その設計図から実際に物体を作成し、そしてその物体に処理を行ってもらうような感じとなります。

どちらの方法でプログラムを記述しても目的を達成することに違いはないですけど、ある目的を行ってくれる物体の設計図を作成しておけば使いまわしも出来ますし、何のためのプログラムなのか明確になる場合が多いのがクラスを使うメリットです。
クラスの記述方法

クラスと言うのは設計図ですので、クラスの中には具体的に何をさせたいのかを記述していきます。例えば下記のような感じです。

設計図 車{
  車を動かす{
    ....
  }

  車を止める{
    ....
  }

  ライトを付ける{
    ....
  }
}

上記の場合は車という設計図を作成しています。設計図の中には、実際に何をしたいのかをメソッドの形で定義していきます。

実際にPHPとして記述するには下記のようになります。

class クラス名{
....
}

「class」の後にそのクラスを表すクラス名を記述します。そしてそのクラスに何をさせたいかを"{"と"}"の間に記述することになります。

以上です。


□クラスからオブジェクトを作る

クラスとは設計図だと書きましたが、車の設計図が人を乗せて走ってくれるわけではありません。実際に動かすためには設計図を元に実際に物体を作る必要があります。

クラスを元に実際に作った物をオブジェクトと呼んでいます。クラスから物体を作成するには"new"を使います。

変数名 = new クラス名(引数);

上記で記述した変数名というのが、作成したオブジェクトを認識するための名前となります。

前のページで車に関する設計図について書きましたが、例えば下記のようなクラスを記述したとします。

class Car{

}

現時点ではクラスとして"Car"というクラス名を持ったクラスを設計しました。ではこの設計図を元に実際に物体を作成してみます。

$car = new Car();

class Car{

}

また変数がいくつでも作成できたように、同じクラスを元にいくつでもオブジェクトを作成することが出来ます。これは1つの設計図から複数の物体を作れるのと同じことです。元になっている設計図(クラス)は同じであっても、そこから作成された物体(オブジェクト)はまったく別のものですので、それぞれ別々に動かすことができます。

$car1 = new Car();
$car2 = new Car();

class Car{

}

"$car1"も"$car2"も同じ"Carクラス"から作成された物体です。元の設計図は同じですけど、物体は別々なので、それぞれに独自の動作を行わせる事が出来ます。

このようにクラスから作成した物体に対して、色々と指示を出していく形でプログラミングを行って行きます。

以上です。

引用:http://www.phpbook.jp/tutorial/class/index1.html
自分的に、↑↑このサイトの設計図という説明がわかりやすかったので、本日はこれを引用させていただきました。

クラスに関しての理解は、まだまだ自分でとっても浅いって感じています。これに関しては、自分で調べたりして、もっと自分で飲み込めるくらいに理解したいって思います。明日も、クラスの授業があるので、ある程度自分で考えて、わからないところは先輩に聞けるように絞り出しておこうと思います。



■コードレビュー(みんなが書いた掲示板のコードを見てみる)
 今日は初めて、コードレビューをしました。はっきり言ってとても楽しかったです。人それぞれ書き方が違うのも面白かったし、また、自分の書き方の良いところや、悪いところを指摘してもらうのはとてもためになるし、もっともっと突っ込んでくれって思いました。
他の人のコードは、知らない関数が盛り沢山でした。よって、他の人から学ぶ事も盛り沢山でした。

他の二人から、私のコードが「なんかわかんないけど、書き方が不思議。なんかみんなと違う」って言われました。そこの、なんかわからないけど不思議と思わせてしまった部分がもっと詳しく聞きたかったです。なんなんだろう…。

今日みんなから学んだ新しい関数一覧

□die
□header
□htmlspecialchars
mysql_real_escape_string
□require_once
□session_destroy
□preg_match
□Pager::factory
md5
□substr

関数は、覚えきれるわけがないって思ってますが、知らない関数でもみんな積極的に調べて、それを活用しているのが、本当に凄いなぁって思いました。私は自分が全く知らなくて、よくわからないものは、全く使う気になりませんでした。私には、わからないことを調べる力、それを理解して使いこなす力がまだまだ足りないって感じました。

また、一度授業でチラっと話が出た、三項演算子使ったり、フラグ使ってるコードを見て、ちょっとコレかっこいいじゃんって思いました。
先輩からも、同期からも学ぶ事がいっぱいいっぱいあります。