プログラミング言語

【PHP入門⑨】クラス ~初心者でも安心!基礎から学べるプログラミング講座~

プログラミング言語

※前回の講座がまだの人はこちら
【PHP入門⑧】多次元配列 ~初心者でも安心!基礎から学べるプログラミング講座~

クラス

クラスとは?

自転車がどの様に作られているか知っていますか?
そういう仕事をしている人や自転車に詳しい人でないと知らないと思います。
ただ、自転車に乗ったことのある人は、自転車にはどの様な部品や機能があるかは分かるはずです。
部品:ハンドル、タイヤ、ブレーキ、ペダル
機能:前進する、曲がる、止まる

これらの部品や機能を持った自転車をプログラミングで製造したい場合、それぞれのプログラムを書いて合わせれば製造できるイメージです。
ただ、その自転車を大量生産したい、色違いを作りたい、機能追加した自転車を作りたいといった場合、自転車として共通している部分を毎回書くことになります。
同じ様なプログラムを各自転車毎に書くことは、見にくい上にコードも長くなる為、綺麗なプログラミングにはなりません。
そこで、クラスという物を使ってプログラムを書くことで、共通部分の変数や処理をまとめることができます。

クラスのイメージ

クラスを例えると、「物を作る際の型」「設計図」の様なイメージです。
「物を作る際の型」や「設計図」を用意しておけば、同じ物の色違いの製造機能追加がしやすくなります。

クラス定義

PHPのクラスには、データを保持する変数処理を記述する関数を定義することができます。
ペダルの様な部品を変数、前進するの様な機能を関数にするイメージです。

実際に自転車クラスを作成してみます。
ペダルのデータを入れる変数($pedal)と色のデータを入れる変数($color)を作成します。

<?php
class Bicycle {
  public $pedal;
  public $color;

  //「前進する」関数は省略
}

変数の前に「public」とありますが、これはアクセス修飾子と言います。
今回は説明を割愛するので、気になる人は調べてみてください。

インスタンス

自転車クラスを作成しました。
しかし、このままでは自転車は製造できていません。
あくまで、「自転車の型・設計図」を作っただけなので、これを基に自転車の実体を作る作業が必要です。
この実体のことをインスタンスと言います。さらに、クラスからインスタンスを作成する行為をインスタンス化と言います。
自転車のインスタンスを作成した後、色を変えたり、機能を追加したりして、自転車を製造します。

インスタンスの作成

インスタンスの作成は以下で出来ます。

$bicycle01 = new Bicycle();

「new クラス名()」でインスタンスが作成出来ます。
$bicycle01に作成されたインスタンスが入るイメージです。
インスタンス化したら、クラス内の変数や関数を使うことが出来ます。

インスタンスの使用

インスタンスを作成したら、変数を使って、独自の自転車を作ります。
今回は、「赤」色で「普通」のペダルの自転車を製造したいとします。
各変数へ「赤」と「普通」と値を入れます。

//インスタンス作成
$bicycle01 = new Bicycle();

$bicycle01->pedal = '普通';
$bicycle01->color = '赤';

自転車クラスで作成した変数は、インスタンス化した後に使えます。
$bicycle01(インスタンス)の中の$pedal(クラスの変数)を使いたい場合は
$bicycle01->pedal」と書きます。(pedalの方は$を書かない為、要注意!)

まとめ

今回の一連の動作をまとめてみます。
自転車クラスを作成して、普通ペダルの赤い自転車を製造しました。

<?php
class Bicycle {
  public $pedal;
  public $color;

  //「前進する」関数は省略
}

//インスタンス作成
$bicycle01 = new Bicycle();

$bicycle01->pedal = '普通';
$bicycle01->color = '赤';

echo 'ペダル:' . $bicycle01->pedal . '<br/>';
echo '色:' . $bicycle01->color . '<br/>';

クラスはプログラミング初心者の一番の鬼門です。
ここで躓く人はかなり多く、諦めてしまう人もいます。
一回で理解できなくても焦らず反復してくだい。身近な人へ質問するのも一つの手です。

次回講座:関数
【PHP入門⑩】関数 ~初心者でも安心!基礎から学べるプログラミング講座~

タイトルとURLをコピーしました