Home > PHP > PHP - クラスの考え方2 -

PHP - クラスの考え方2 -

  • 2012-05-01 (Tue) 09:01
  • PHP
あいにくの天気の悪さ・・GW。
今日から5月、だいぶ過ごしやすくなってきました。沖縄はすでの梅雨になったそうで、天気が気になる毎日になりそうです。

今日は、前回の復習という形で、クラスの考え方をおさらいします。
第18回 クラスとは(2)
PHPでは、オブジェクト指向と呼ばれるプログラミング手法を利用できます。オブジェクト指向を導入することで、プログラムの再利用、保守性がアップして、プログラミングを効率よく作ることができます。
このオブジェクトをテンプレート(ひな形)として構築することで、データをまとめて管理でき、変数や関数を一個ずつ定義するより、まとめて効率よく保守性を向上できます。これがクラスの考え方となります。

クラスからオブジェクトを作る作業は、設計図から部品を作成する作業に例えられるようです。前もって良く利用するような変数、関数を作っておき、必要な時にそこから拝借してくるようなイメージになります。

クラスが持つ変数はプロパティと呼ばれ、publicまたはprivateで定義します。前回は、varで定義すると紹介しましたが、PHP5.0のバージョンからvarからpublic、privateになりました。新しいバージョンは、public、privateに対応していると考えてください。
publicは、クラスの外から直接アクセスできる変数で、privateではクラスの外から直接アクセスできない変数となります。
クラスが持つ関数をメソッドと呼び、関数と同様にfunctionで定義します。

定義したクラスからオブジェクトを作成するには「new」を使用します。
作成したオブジェクトは各々が、クラスで定義したプロパティやメソッドを持ち、それらにアクセスするにはオブジェクトに対してアロー演算子を使用します。

では、簡単な例で確認してみましょう。
<?php
 class Math{
  public $num1;
  public $num2;

  function plus(){
   return $this->num1 + $this->num2;
  }
  function minus(){
   return $this->num1 - $this->num2;
  }
 }
 $math = new Math;

 $math -> num1 = 8;
 $math -> num2 = 3;

 $result1 = $math -> plus();
 $result2 = $math -> minus();

 echo "足し算の結果は{$result1}、引き算の結果は{$result2}です。";
?>

20120501-p03.jpg
コードの中の$mathは、クラスMathのオブジェクトになります。名前は変数と同じように任意に付けることができます。$mathに対して -> を使用して、プロパティやメソッドにアクセスします。
また、クラス内でプロパティやメソッドを参照する時は、$thisという変数を使って呼び出すことができます。$thisはメソッドの定義の中でのみ使用できる特殊な変数です。

クラスは基本的にnewを使ってオブジェクトを生成してから利用しますが、スコープ演算子を使うことで、クラスの内容に直接アクセスできます。
スコープ演算子は「::」と表示します。
<?php
 class Mes{
  function morning(){
   return "おはよう!";
  }

  function evening(){
   return "こんばんわ";
  }
 }

 $messageA = Mes::morning();
 $messageB = Mes::evening();

 echo "変数messageAは「{$messageA}」、変数messageBは「{$messageB}」です。";
?>

20120501-p04.jpg
規模の大きなプログラムを複数の人で作る場合は、関数名や変数名が重複してしまうと正しく動作しません。しかし、オブジェクト指向を利用すれば、クラス名さえ重複しなければ、変数名や関数名が被ってしまっていても、大丈夫です。

クラスの大まかな考え方をまず覚えておけば、既存のクラスを使うことはできると思います。

Comments:1

wlp 2015-06-29 (Mon) 18:12

http://www.guccihandbags.com.co/
http://www.gucci-outlet.in.net/
http://www.gucci--outlet.com.co/
http://www.guccishoes.net.co/
http://www.guccishoes.us.org/
http://www.hermesbags.com.co/
http://www.hermesbirkin.com.co/
http://www.hermesoutlet.net.co/
http://www.hollister.us.org/
http://www.hollisterclothing-store.in.net/
http://www.insanityworkout.net.co/
http://www.iphone-cases.us/
http://www.ralphlaurenpolo.in.net/
http://www.ray-ban-outlet.us.com/
http://www.raybans.us.org/
http://www.rayban-sunglasses.org.uk/
http://www.rayban-sunglasses.us.org/
http://www.raybansunglassesoutlet.net.co/
http://www.raybanwayfarer.in.net/
http://www.replicahandbags.com.co/
http://www.replicawatches.us.com/
http://www.retro-jordans.com/
http://www.rolex-watches.me.uk/
http://www.rosherun.org.uk/
http://www.rosheruns.us/
http://www.salvatoreferragamo.in.net/
http://www.soccer-shoes.org/
http://www.softball-bats.us/
http://www.suprashoe.net/
http://www.swarovskicrystal.com.co/
http://www.swarovskijewelry.com.co/
http://www.swarovski-uk.org.uk/
http://www.the-northface.com.co/
http://www.the-northface.in.net/
http://www.thenorth-face.org.uk/
http://www.thenorthface.us.org/
http://www.thenorthfacejackets.in.net/
http://www.thomassabo-uk.org.uk/
http://www.tiffanyandco.net.co/
http://www.tiffanyjewelry.us.org/
http://www.tory-burch-outlet.in.net/
http://www.tory-burchoutlet.us.com/
http://www.louboutin.jp.net/
http://www.louis-vuittoncanada.ca/
http://www.louisvuitton.jp.net/
http://www.louis--vuitton.org.uk/
http://www.louisvuitton.so/
http://www.louisvuittonas.com/
http://www.edhardy.in.net/
http://www.levisjeans.com.co/
http://www.bcbgdresses.net/
http://www.bebeclothing.net/
http://www.harrods-london.co.uk/
http://www.guccishoes.com.co/
http://www.ralphlaurenoutletonline.us.org/
http://www.true-religion.com.co/
http://www.truereligionjeans.net.co/
http://www.truereligion-outlet.com.co/
http://www.uggaustralia.net.co/
http://www.uggboots.net.co/
http://www.uggbootsclearance.com.co/
http://www.uggsonsale.com.co/
http://www.uggsoutlet.com.co/
http://www.uptocoachoutlet.com/
http://www.vansshoes.us/
http://www.weddingdressesuk.org.uk/
http://www.yogapants.com.co/
http://www.ugg-boots.us.org/
http://www.poloralphlaurenoutlet.net.co/
http://www.burberryoutletonline.ar.com/
http://www.toms-outlet.net.co/
http://www.michaelkors.in.net/
http://www.christianlouboutinoutlet.net.co/
http://www.toryburchsale.com.co/
http://www.pradaoutlet.com.co/
http://www.longchamp-handbags.in.net/
http://www.longchampoutlet.com.co/
http://www.chanel-bags.com.co/
http://www.truereligion-outlet.us.org/
http://www.abercrombie-and-fitch.us.com/
http://www.timberlandboots-outlet.net/
http://www.timberland-shoes.com/
http://www.tommyhilfiger.net.co/
http://www.tommy-hilfigeroutlet.com/
http://www.tomshoesoutlet.com/
http://www.toms-outlet.in.net/
http://www.toms-shoes.com.co/
http://www.hollisterclothing.in.net/
http://www.newbalance-shoes.org/
http://www.converse--shoes.net/
http://www.lululemonoutlet.com.co/
http://www.nfl-jerseys.in.net/
http://www.cheapjerseys.us.org/
http://www.rolex-watches.us.com/
http://www.rolexwatchesforsale.us.com/
http://www.p90xworkout.in.net/
http://www.giuseppezanotti.com.co/
http://www.maccosmetics.net.co/
http://www.instyler.in.net/
http://www.mizunorunning.net/
http://www.handbagsoutlet.com.co/
http://www.hilfigeroutlet.in.net/
http://www.kate-spade.com.co/
http://www.katespade-outlet.com.co/
http://www.kate-spades.com/
http://www.longchamp.us.org/
http://www.longchamp.com.co/

Comment Form
★下記に2つの英単語をスペースで区切って入力してください

Home > PHP > PHP - クラスの考え方2 -

Search
Feeds

Page Top