■ファイター設定画面をもとに、2人のファイターを生成。
1人だけ5ポイント分戦う。
その後、2人のそれぞれの現在のレベルを確認。
1人はレベル5でもう1人はレベル0、という内容。
つまり、同じクラスをもとに生成された複数のインスタンス同士は全くかかわりがない(個々のインスタンスは完全に独立している)。言い換えると、クラスが同じなので性質は同じだが、各インスタンスが保持しているデータはインスタンス独自のもの(他のインスタンスへは一切影響を与えない=クラスとインスタンスの関係は1対1ではない)。
class Fighter{
private $level = 0; // レベル
public function fight($point){ // 戦う
$this->level += $point; // 戦った経験値分、レベルを加算
}
public function getLevel(){ // レベル取得
return $this->level;
}
}
// 2人のファイターのインスタンスを生成
$fighter1 = new Fighter();
$fighter2 = new Fighter();
$fighter1->fight(5);// ファイター1だけ戦ってみる
// 両方のファイターのレベル取得
$level1 = $fighter1->getLevel();
$level2 = $fighter2->getLevel();
print "ファイター1はレベル" . $level1 . "になりました";
print "ファイター2はレベル" . $level2 . "になりました";
▼結果
http://php.w4c.work/0-PROTOTYPE/class04.html
class HUMAN{//「HUMAN」という名のクラスを定義
var $comment = "これからPHPを勉強します";//「メンバ変数$comment」に「"これからPHPを勉強します"」をセット。「コメント」という人の属性(プロパティ)
var $favorite = "プログラミング";//「メンバ変数$favorite」に「"プログラミング"」をセット。「お気に入り」という人の属性(プロパティ)
var $studylevel = 0;//「メンバ変数$studylevel」に「0」をセット。「学習レベル」という人の属性(プロパティ)
function proclamation(){//「メンバ関数proclamation()」を定義。「宣言する」という人の機能(メソッド)
echo $this->comment."
";//「変数$this」は、自らを指すという特別な変数。メンバ関数内から、そのクラスのメンバ変数とメンバ関数にアクセスするために利用
}
function study($param = ""){//「メンバ関数study()」を定義。「勉強する」という人の機能(メソッド)
if($param == $this->favorite){
$this->result(1);
}else if($param){
$this->studylevel += 6;
$this->result(2);
}else{
$this->studylebvel -= 2;
$this->result(3);
}
}
function result($point){//「メンバ関数result()」を定義。「結果を知る」という人の機能(メソッド)
$comment = "";
switch($point){
case 1:
$comment = "初心を忘れないで
";
break;
case 2:
$comment = "デバッグができるようになれば、大したもの
";
break;
case 3:
$comment = "...
";
break;
}
echo $comment;
}
function check_studylevel(){//「メンバ関数studylevel()」を定義。「学習レベルを見る」という人の機能(メソッド)
echo $this->studylevel." level
";
}
}
$student = new HUMAN();//オブジェクトを生成
$student->proclamation();//メンバ関数を実行
$student->check_studylevel();
$student->study("プログラミング");
$student->study("デバッグ");
$student->study();
$student->check_studylevel();
$student->proclamation();
▼結果
http://php.w4c.work/0-PROTOTYPE/class2.html
▼クラス | 基本 | PHPStyleNote
http://php.w4c.work/originalSample/PHPStyleNote/basic/class/