生成したインスタンスの数をカウントする方法について、初期値0の変数を用意し、インスタンス生成毎に1足していく手順を解説しています。
▼使うもの
- クラスプロパティ(変数の定義)
- コンストラクタ (インスタンス生成毎に1足す処理)
- クラスメソッド(数値の取得)
▼クラス内の記述
$count
:インスタンスの数を入れる変数$count++
: \$count = $count + 1getCount()
: インスタンスの数を取得するメソッド
*変数名、メソッド名は任意
class クラス名{
//クラスプロパティを定義(初期値0)
protected static $count = 0;
// コンストラクタを定義
public function __construct(){
// インスタンス生成時に1を足す
self::$count++;
}
// クラスメソッドを定義
public static function getCount(){
return self::$count;
}
}
▼クラス外で呼び出し
<?php echo クラス名::getCount() ?>
id番号の設定
上記を応用して固有なidの設定も可能。
▼使うもの
- クラスプロパティ(変数の定義)
- コンストラクタ (インスタンス生成毎に1足す処理)
- クラスメソッド(数値の取得)
- idを入れるプロパティ(インスタンス毎)
▼書き方
- インスタンスを生成する毎に、$count(クラスプロパティ)に1を足す。
- 次のインスタンスが生成される前にプロパティ(id)にその値をセット。
- 設定したid取得用にゲッター「getId()」をセット
class User{
private $id;
private static $count=0;
public function __construct(){
//idの設定
self::$count++;
$this->id = self::$count;
}
public function getId(){
return $this->id;
}
}
▼クラス外で呼び出しインスタンス->getId()
userAというインスタンスの場合
//インスタンスの生成
<?php $userA = new User() ?>
//id番号の取得
<?php echo userA->getId() ?>