PHP 4.X と PHP 5.X でのクラスの定義 (まだ途中)

PHP 4.X

<?php
// クラスの定義
class Super{
	// メンバ定数
	// --定義不可
	
	// 共有メソッド
	// --すべてが共有メソッド
	
	// コンストラクタ
	function Super(){}
	
	// デストラクタ
	// --定義不可
	
	// メンバ関数
	function GetMember(){
		// メンバ変数へのアクセス
		return $this->member;
	}
	
	// メンバ変数
	var $member = 0;  // 定数による初期化のみが可能
}

/* 注意
 * ・"stdClass"という名前は使用できません。
 * ・__sleepおよび__wakeupはPHPクラス内で使用される特殊な関数です。
 * ・__で始まる全ての関数名を特殊な関数として予約しています。
 * ・$thisはクラスのインスタンス、もしくは呼び出し元オブジェクトを意味します。
 */

// クラスの継承
class Sub extends Super{
	// オーバーライドメンバ関数
	function GetMember(){
		return parent::GetMember();
	}
}

// インスタンスの生成
$c = new Super();

// インスタンスの破棄
unset($c);

// メソッドの呼び出し
$c->GetMember();

// 共有メソッドの呼び出し
// PHP4では、全てのメンバ関数が静的に呼び出せてしまいます。
Super::GetMember();
?>

PHP 5.X

<?php
class Sample{
	// メンバ定数
	public static number = 10;
	
	// 共有メソッド
	public static function SharedFunc1(){}
	
	// コンストラクタ
	public function __construct(){}
	
	// デストラクタ
	public function __destruct(){}
	
	// インスタンス・メソッド
	public function Func1(){}
	
	// メンバ変数
	private member;
}

// インスタンスの生成
$c = new Sample();

// インスタンスの破棄
unset($c);

// メソッドの呼び出し
$c->Func1();

// 共有メソッドの呼び出し
Sample::SharedFunc1();
?>