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(); ?>