【PHP】生成したインスタンスの数をカウントする方法(idの設定方法)

php-prograshi(プロぐらし)-kv PHP
記事内に広告が含まれていることがあります。

生成したインスタンスの数をカウントする方法について、初期値0の変数を用意し、インスタンス生成毎に1足していく手順を解説しています。

▼使うもの

  • クラスプロパティ(変数の定義)
  • コンストラクタ (インスタンス生成毎に1足す処理)
  • クラスメソッド(数値の取得)



▼クラス内の記述

$count:インスタンスの数を入れる変数
$count++: \$count = $count + 1
getCount(): インスタンスの数を取得するメソッド
*変数名、メソッド名は任意

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() ?>
タイトルとURLをコピーしました