- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:クラスで永続的な値を持たせたい)
クラスで永続的な値を持たせる方法
このQ&Aのポイント
- 親クラスが保持している値(ここではID)を維持してそれぞれの子クラスが利用できるようにしたいのですが、次のようなやり方だと維持できないようです。
- どのようにすればクラスを利用する場合に永続的な値を持たせることができるのでしょうか?
- IDが希望通りに維持できない問題が発生しています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
以下のように static なメンバ変数で値を共有するってのはどうでしょう。 サブクラスからは、parent::$ID という形で参照します。 <?php class oya { protected static $ID = 0; function setID($id) { self::$ID = $id; } function getNextID() { return self::$ID + 1; } function printID() { echo "\n ID = ". self::$ID ; } } class sub1 extends oya { function sub1 () {$this->setID($this->getNextID());} } class sub2 extends oya { function sub2 () {$this->setID($this->getNextID());} } $sub1 = new sub1();//←IDが1になる $sub1->printID(); $sub2 = new sub2();// $sub2->printID(); ?>
お礼
ご返答ありがとうございます。 そのやり方でできました。ありがとうございます。