親クラスが保持している値(ここではID)を維持して
それぞれの子クラスが利用できるようにしたいのですが、
次のようなやり方だと維持できないようです。
どのようにすればクラスを利用する場合に永続的な値を
持たせることができるのでしょうか?
class oya {
var $ID = 0;
function setID($ID) { $this->ID = $ID; }
function getNextID() { return $this->ID + 1; }
}
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になる
$sub2 = new sub2();//←希望としてはIDが2になってほしいが、IDは1
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();
?>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- JavaScript javascriptでテーブルに追加した項目のid追加してローカルストレージを操作したい 5 2023/01/01 15:52
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA コレクションに2次元配列...
-
number_formatが勝手に四捨五入
-
PHP、ヒアドキュメント内でのIF...
-
PHPプログラム上で「URLを直接...
-
どういうプログラムを関数化を...
-
protectedなのにアクセスできな...
-
[C#]Arraylistに追加した構造体...
-
エラーの理由が分りません。Pri...
-
可変変数にアロー演算子を使いたい
-
Let's Encryptで自動更新がされ...
-
ExcelVBAで部分一致(*)をしたい
-
Dosブロンプトでtabを出力したい
-
wordの差し込み印刷で文字...
-
「取得先」という表現について
-
switch()文で値の大小比較
-
shシェルスクリプト 空白行の...
-
アクセスの度にIPアドレスを変...
-
バッチファイルで、全てのウィ...
-
【VBA】EXCELブックを開かずに...
-
DTOとEntityの差は何ですか。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA コレクションに2次元配列...
-
VB.NETからVBAマクロ(引数)を呼...
-
PHPでの画像の形式の変換
-
VB.NETSystem.Xml 要素数を得る...
-
エラーの理由が分りません。Pri...
-
CSVファイルをブラウザのキャッ...
-
PHP、ヒアドキュメント内でのIF...
-
既存関数の上書き
-
【シェル】case文でワイルドカ...
-
PHPの変数値をリンクさせたい
-
可変変数にアロー演算子を使いたい
-
どういうプログラムを関数化を...
-
ExcelVBAで部分一致(*)をしたい
-
サブネットマスクを用いたIP制...
-
PHP Catchable fatal error の...
-
VB6のコンボボックスのテキスト...
-
protectedなのにアクセスできな...
-
[C++]std:mapの扱いを教えて頂...
-
次のhtml・cssでspan内の文字を...
-
classの再定義エラーについて
おすすめ情報