• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:クラスで永続的な値を持たせたい)

クラスで永続的な値を持たせる方法

このQ&Aのポイント
  • 親クラスが保持している値(ここではID)を維持してそれぞれの子クラスが利用できるようにしたいのですが、次のようなやり方だと維持できないようです。
  • どのようにすればクラスを利用する場合に永続的な値を持たせることができるのでしょうか?
  • IDが希望通りに維持できない問題が発生しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • uchac
  • ベストアンサー率100% (2/2)
回答No.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(); ?>

takagoo100
質問者

お礼

ご返答ありがとうございます。 そのやり方でできました。ありがとうございます。

関連するQ&A