■クラス定義(単にクラスを定義しただけで何の機能も持たないクラス)
class Product{//「class」というキーワードの後ろに好きなクラス名を記述。クラスの開始と終了を表す「{」「}」を記述
}
▼結果(単にクラスを定義しただけなので、結果には何も表示されない)
http://php.w4c.work/0-PROTOTYPE/class0.html
■クラス独自の変数である「プロパティ」(フィールド/メンバ変数ともいう)を定義
class Product{
private $name; // 商品名。「private修飾子」→外部からのアクセス不可
private $price; // 価格。「private修飾子」→外部からのアクセス不可
}
▼結果(プロパティを定義しただけで、どこからも呼び出していないので、結果には何も表示されない)
http://php.w4c.work/0-PROTOTYPE/class01.html
■メソッド(クラスにおける関数)を定義
class Product{
private $name; // 商品名
private $price; // 価格
public function getName(){ // ゲッター(商品名を取得)。「public修飾子」→外部からのアクセス可
return $this->name; // 「$this」→クラス内に記述することで、クラス自身を指す。「$this->name」 →「Productクラス自身の$nameプロパティ」の意
}
public function setName($name){ // セッター(商品名を設定)。「public修飾子」→外部からのアクセス可
$this->name = $name; // 「$this」→クラス内に記述することで、クラス自身を指す。「$this->name」 →「Productクラス自身の$nameプロパティ」の意
}
}
▼結果(出力処理を記述していないので、結果には何も表示されない)
http://php.w4c.work/0-PROTOTYPE/class02.html
■インスタンスを使ってメンバ(プロパティ・メソッド)へアクセス(PHP4) - ゲッター・セッター不使用
PHP4で、クラス定義内に、変数(プロパティ)の定義をする際は、変数の前に必ず「var」と記述
class SIGNAL{//「SIGNAL」という名の「クラス」を定義
var $red = "stop";//メンバ変数(プロパティ)を定義
var $blue = "go";//メンバ変数(プロパティ)を定義
var $yellow = "caution";//メンバ変数(プロパティ)を定義
function check(){//メンバ関数(メソッド)を定義
echo "左右を見て横断歩道を渡りましょう";
}
}
$obj = new SIGNAL();//「new演算子」によって、クラス「SIGNAL」の「インスタンスオブジェクト」を生成し、「変数$obj」へ格納
echo $obj->red;//オブジェクトが持つメンバ変数(プロパティ)を利用
echo "";
$obj->check();//オブジェクトが持つメンバ関数(メソッド)を使用
▼結果
http://php.w4c.work/0-PROTOTYPE/class1.html
■インスタンスを使ってメンバ(プロパティ・メソッド)へアクセス(PHP5) - ゲッター・セッター不使用
class SIGNAL{
public $red = "stop";//プロパティ(メンバ変数)定義
public $blue = "go";
public $yellow = "caution";
public function check(){//メソッド(メンバ関数)定義
echo "左右を見て横断歩道を渡りましょう";
}
}
$obj = new SIGNAL();
echo $obj->red;
echo "";
$obj->check();
▼結果
http://php.w4c.work/0-PROTOTYPE/class1_5.html
■インスタンスを使ってメンバ(プロパティ・メソッド)へアクセス(PHP5) - プロパティへのアクセスにゲッター・セッター利用
class SIGNAL{
private $red = "stop";
private $blue = "go";
private $yellow = "caution";
public function getRed(){ // ゲッター
return $this->name;
}
public function setRed($name){ // セッター
$this->name = $name;
}
public function check(){
echo "左右を見て横断歩道を渡りましょう";
}
}
$obj = new SIGNAL();
$obj ->setRed("赤は止まれ"); // プロパティ設定を上書き
$signalRed = $obj ->getRed(); // プロパティ設定を取得
var_dump($signalRed);
echo "";
$obj->check();
▼結果
http://php.w4c.work/0-PROTOTYPE/class1_5_1.html
■インスタンスを使ってメンバ(プロパティ)へアクセス(PHP5) - 一般的な使用例
class Product{
private $name; // 商品名
private $price; // 価格
public function getName(){ // ゲッター
return $this->name;
}
public function setName($name){ // セッター
$this->name = $name;
}
}
$product = new Product();
$product ->setName("本"); // 商品名を設定
$productName = $product->getName(); // 商品名を取得
var_dump($productName);
▼結果
http://php.w4c.work/0-PROTOTYPE/class03.html