この記事では主にPHPオブジェクト指向における静的プロパティとメソッドのメモリ位置を紹介し、メモリ位置の例を通して静的プロパティの原理と使用法を分析します。ヒント、困っている友達は参考にしてください
この記事の例では、PHP オブジェクト指向で静的プロパティとメソッドのメモリ位置を分析します。皆さんの参考に共有してください。詳細は以下の通りです
static 静的プロパティのメモリの場所 -> オブジェクトではなくクラス。それを証明するためにテストをしてみましょう
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
header("content-type:text/html;charset=utf-8"); クラス人間{ static public $name = "リトルシスター"; 公開 $height; パブリック関数 Tell(){ } } エコー人間:$name; //オブジェクトに依存せずに直接アクセスできます。静的プロパティのメモリの場所はオブジェクトではなくクラス内にあるためです。 $p1 = 新しい人間(); $p2 = 新しい人間(); print_r($p1); echo $p1::$name = "夫人"; //$p1 オブジェクトの static 属性の値を変更すると、それに応じて $p2 オブジェクトも変更されます。 エコー $p2::$name; ?> |
出力結果は次のように表示されます:
1. echo Human:$name: クラスが宣言された後、オブジェクトに依存しない静的属性が存在します。したがって、静的属性は 1 つだけです (つまり、メモリ内に格納場所はオブジェクト内にありません。オブジェクト内にある場合、オブジェクトをインスタンス化すると、高さ属性などの対応する静的場所が設定されます)。
2. print_r($p1): 印刷結果には高さ属性のみが含まれますが、名前はありません。3. 静的属性の値が変更されると、すべてのオブジェクトの属性値が影響を受けます。
メソッドは、静的であろうと通常であろうと、クラスのメモリ空間に存在します。証明も非常に簡単で、新しいオブジェクトと print_r (オブジェクト) を作成するだけです。
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。
http://www.bkjia.com/PHPjc/955273.html
。