この記事で紹介する内容は、PHPオブジェクト指向の内容であり、静的プロパティと静的メソッドの123個の図があり、現在は全員に共有されているので、必要な友達は参照できます
/*
プロパティとメソッドの前に静的変更を追加します
、これは静的属性/静的メソッドと呼ばれます
静的属性
クラスが宣言された後、属性はすでに存在しており、アクセスするためにオブジェクトに依存する必要はありません。 2. クラスはメモリ内に 1 つしかないので、静的属性は 1 つだけです
*/
class Human { static public $head = 1; public function changeHead() { Human::$head = 9; } public function getHead() { return Human::$head; } }echo Human::$head; //1// 静态属性的访问方法echo '<br >';// 静态属性只有一个,为所有的对象的共享.$m1 = new Human();$m1->changeHead();$m2 = new Human();$m3 = new Human();echo $m2->getHead(),'<br >'; //9echo $m3->getHead(),'<br >'; //9
/*
静的メソッド
クラスに格納される通常のメソッド、コピーは 1 つだけです
違いは次のとおりです:
つまり、通常のメソッドはオブジェクトを持ち、オブジェクトで動員される必要があります
そして静的メソッドどのオブジェクトにも属していませんが、クラスに属しているため、 $this をバインドする必要はありません
class Human2 { public $name = '张三'; static public function cry() { echo '5555'; } public function eat() { echo '吃饭'; } public function intro() { echo $this->name; } }// 此时一个对象都没有Human2::cry();// 下面这个eat是非静态方法,应由对象来调用Human2::eat();/* 报错提示: Strict standards: Non-static method Human2::eat() should not be called statically */echo '<br >';//Human2::intro();/* 直接报错: Fatal error: Using $this when not in object context */
/ * 概要:
上で分析したように、実際には、非静的メソッドはクラス名によって静的に呼び出すことはできません*/
$lisi = new Human2();$lisi->cry(); //5555
オブジェクト -> 動的メソッドへのアクセス はい
オブジェクト -> 静的メソッド はい
関連する推奨事項:
オブジェクト指向phpの継承、ポリモーフィズム、カプセル化の概要
以上がPHP オブジェクト指向メモ - 123 静的プロパティと静的メソッドの図の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。