webかたつむり ウェブデザインを勉強中 ウェブ初心者のおぼえがき

webかたつむり

WEB制作会社のフォトグラファー

class, property, method

【PHP超入門】クラス~例外処理~PDOの基礎 - Qiita

  • 上のサイトの手順に従ってPDOが理解できるのか、頑張ってみる。
  • 自分用のメモです。

f:id:ohta-felica:20160801161707p:plain

  •  変数は値の保持、関数は値の処理、クラスは変数と関数の集合。
  • クラスは「変数」と「関数」から構成されている。このことにより、データーの保持と処理をすることができる。
  • クラスの中にある変数を「プロパティー」、関数を「メソッド」と呼ぶ。
  • classを定義する構文 
  • class クラス名{$プロパティー名; function メソッド名(){処理}}

f:id:ohta-felica:20160801162446p:plain

  •  クラスの中にある、すべての「プロパティー」と「メソッド」が自由に使えるわけではない。
  • それぞれの「プロパティー」と「メソッド」には、どこからアクセス可能か規定されている。
  • class{access修飾子+$property; access修飾子+function+method{} }
  • carというクラスを生成する。
  • carというクラスには、「driveというメソッド」が含まれている。
  • このメソッドのアクセス修飾子は「public」です。
  • driveメソッドは、echo '走ります' ;、つまり「走ります」という文字を出力する「処理」をします。

<?php
class car{
public function drive(){echo '走ります' ;}
}
?>

<?php
class car{
public function drive(){echo '走ります' ;}
}

$prius=new car();
?> 

アロー演算子

 f:id:ohta-felica:20160801170126p:plain

<?php
class car{
public function drive(){echo '走ります' ;}
}

$prius=new car();
$prius->drive();
?>

f:id:ohta-felica:20160801175716p:plain

  スコープ定義演算子

  • インスタンス化しないで、クラスの「プロパティー」「メソッド」を直に扱うこともできる。
  • この時に使うのが、「スコープ定義演算子

<?php
class car{
public function drive(){echo '走ります' ;}
}

car::drive();
?> 

f:id:ohta-felica:20160801175944p:plain 

f:id:ohta-felica:20160801170233p:plain 

  • クラスを作るときに、特に指定をしなければそれはインスタンスのプロパティーとメソッドになる。
  • それらは、インスタンス化しないと呼び出せない。
  • クラスのプロパティーとメソッドにするためには「static」という修飾子を「$」や「function」の前に作れば良い。
  • このように「static」修飾子がついたプロパティーとメソッドは「::」スコープ定義演算子で呼び出すことができる。

f:id:ohta-felica:20160801210823p:plain

  •  以下、PHPのマニュアルです。
  • クラスプロパティーもしくはメソッドをstatic宣言することで、クラスのインスタンス化の必要なしにアクセスすることができます。
  • staticがあるpropertyを「静的プロパティー」staticがあるmethodを「静的メソッド」という。

f:id:ohta-felica:20160801180418p:plain

 

<?php
class test{
static $a=8;
static function sum($b,$c){echo $b+$c;}
}
echo test::$a;
test ::sum(5,7);
?>

 

f:id:ohta-felica:20160801180552p:plain

 コンストラクタ

  •  クラスをインスタンス化するときに実行されるメソッドをコンストラクタと呼ぶ。
  • メソッド名に_construct()と記述することで、定義することができます。
  • コンストラクタはプロパティを初期化するときなどに使われます。