クラス
定義
class クラス名{
const 定数名=値; //クラス内定数
public $a; //メンバ変数(どこからでもアクセス可能。デフォルト)
protected $b; //メンバ変数(現在のクラスとサブクラスからのみアクセス可能)
private $i ; //メンバ変数(現在のクラスからのみアクセス可能)
public function __construct() { //コンストラクタ
文;
}
public function __destruct() { //デストラクタ
文;
}
public function get_i() { return $this->i ; } //メンバ関数(ゲッタメソッド)
public function set_i( $i ) {$this->i = $i ; } //メンバ関数(セッタメソッド)
public final function get_a() { return $this->a ; } //オーバーライドできないメソッド
}
静的メソッド
public static function メソッド名([引数1,引数2,…]) { 文; }
インスタンス化しなくても クラス名::メソッド名() で呼び出せる。
クラスの継承
class サブクラス名 extends スーパークラス名 {}
サブクラスからスーパークラスのメソッドを呼び出すには parent::メソッド名() とする。
ポリモーフィズム
抽象メソッドの定義
abstract class クラス名 {
protected abstract function getA(); //抽象メソッド
}
抽象メソッドを含むクラスは抽象クラスであり、クラス名の前に abstract を付ける必要がある。
インターフェイスの定義
interface インターフェイス名 {
pubic function メソッド名() ; //抽象メソッド
}
インターフェイスは特別なクラスであり、配下のメソッドがすべて抽象メソッドである。
通常ならクラスは多重継承できないが、インターフェイスなら多重継承が可能になる。
インターフェイスの実装
class クラス名 implements インターフェイス名[,インターフェイス名,…] {}
インターフェイスの内部はすべて抽象メソッドであるので、クラスで実装する(実装クラス)。
例外処理
try {
//例外が発生する可能性がある処理
} catch ( 例外の種類 $e ) {
//例外発生時の処理
}

