リスを倒す 『初めてのPHP,MySQL,JavaScript&CSS』

『初めてのPHP,MySQL,JavaScript&CSS』勉強奮闘記

5-3.PHPの関数とオブジェクト③PHPのオブジェクト(改)

オブジェクト迷子です。
もーなんだよオブジェクトて。よくわかんらん。横文字でかっこつけやがって。
ここでなぁなぁにして先に進んでも結局前と一緒なので、少し時間をかけて勉強します。(このブログ見てる方、そんなにいないと思うけど、、間違ってたら誰か教えてください…)


1-1.オブジェクト指向プログラミング(OOP


オブジェクトとは「データ処理の集まり」です。
目の前にある携帯電話など具体的なものもオブジェクトだし、明日の予定とか今考えていることなんかもオブジェクトというそうです。オブジェクトとは、と大それた感じがしたので構えてましたが、1つにくくれるもの(何でくくるかはそれぞれ)って考えでいいのかな…

1-2.オブジェクト指向の必要性


PHPによるプログラミングは、1つのファイルにたくさんの処理を記述してしまいがちになります。
ちょっとしたものならいいのですが、どんどんページ数が増えていくと、同じ処理をあちこちに記載していかないといけません。そして、一部の処理を変更したいなーってなったときに、コピーした箇所をすべて修正して回る必要があります。
関数ではunction文で処理をひとまとまりにしましたが、もうちょっと高度版がオブジェクト指向っぽい。。。
オブジェクトはデータと処理がセットになっていて、オブジェクト内部にデータを持つことで、互いにメッセージをやり取りしたりすることができます。


1-3. 使用される言語


おそらく、こういうこと。

言語 意味
オブジェクト データ処理の集まり
クラス 1つのプログラム、プロパティとメソッドで出来ている
メソッド 関数を使った処理
プロパティ 変数、データ
インスタンス クラスを実体化したもの

字が汚いけど、絵にしてみた。

1-4. オブジェクトの作成(クラスの作成)


なんとなくですが、オブジェクト≒クラスってとらえていいのかもと思いました。
例として分かりやすかたので書きますと、学校に通っている「人」の集合体を「生徒」という名前の付いた「クラス」と考えることができるそうです。クラスの内部には、処理(メソッド)とデータ(プロパティ)を定義します。

◎クラスの定義


<?php

class クラス名 ←クラス名を定義
{
public$変数="文字列"; ←プロパティを定義
public function 関数名() ←メソッドを定義
{
//処理を記述
}
?>

1-5. インスタンスの生成


クラスを定義しただけでは処理を行うことができません。処理を実行するにはクラスを実体化して生成されるインスタンスを使用します。

インスタンスの生成


<?php

オブジェクト変数=newクラス();

class クラス名
{
public$変数="文字列";
public function 関数名()
{
//処理を記述
}
?>

クラスを実行するために、クラスに対して「new」キーワードを使ってインスタンスを作成します。
インスタンスを作成するときに引数を渡したいときに()の中に指定します。

1-6.メソッドの記述


クラスから生成されたインスタンスはオブジェクト変数に格納されます。
この変数を使ってクラスの各メソッドにアクセスできます。

また、決められた手続き以外は内部データにアクセスできないようにすることができます。(カプセルか、情報隠蔽というらしい)


◎メソッド実行の構文


オブジェクト関数->メソッド();

でてきた!「->]これw
また、メソッドでは「$this」という特殊な変数にアクセスできます。$thisは、対象になっているオブジェクトのプロパティへのアクセスに使用できます。

簡単なコードを書いてみると、


<?php
// ここから下2行が実行してる
$helloworld = new HelloWorld();インスタンスの生成(格納)
$helloworld->echoHello();←メソッドの記述(ここで実行)

class HelloWorld{
public $text = "hello world";
public function echoHello(){
echo $this->text;
}
}
?>


結果はこう。
f:id:taro-blog2323:20160730151659p:plain

とりあえず、書き方というか何が何を示しているのかは分かったけど、実際どうするんですかってのが不明かも。。
まだまだむずかしいなーーー。
ちょっと長くなってしまたので、ここで切ります。文もぐじゃぐじゃだし。すみません。

いじょー