ホームページ  >  記事  >  バックエンド開発  >  PHP オブジェクト指向メモ - 123 静的プロパティと静的メソッドの図

PHP オブジェクト指向メモ - 123 静的プロパティと静的メソッドの図

不言
不言オリジナル
2018-04-08 15:47:081773ブラウズ

この記事で紹介する内容は、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 &#39;<br >&#39;;// 静态属性只有一个,为所有的对象的共享.$m1 = new Human();$m1->changeHead();$m2 = new Human();$m3 = new Human();echo $m2->getHead(),&#39;<br >&#39;; //9echo $m3->getHead(),&#39;<br >&#39;; //9

PHP オブジェクト指向メモ - 123 静的プロパティと静的メソッドの図/*

静的メソッド


クラスに格納される通常のメソッド、コピーは 1 つだけです

静的メソッドもクラスに保存され、コピーは 1 つだけです


違いは次のとおりです:

通常のメソッドは動員するオブジェクトが必要で、$this をバインドする必要があります

つまり、通常のメソッドはオブジェクトを持ち、オブジェクトで動員される必要があります

そして静的メソッドどのオブジェクトにも属していませんが、クラスに属しているため、 $this をバインドする必要はありません

*/



class Human2 {
    public $name = &#39;张三&#39;;    static public function cry() {
        echo &#39;5555&#39;;
    }    public function eat() {
        echo &#39;吃饭&#39;;
    }    public function intro() {
        echo $this->name;
    }
}// 此时一个对象都没有Human2::cry();// 下面这个eat是非静态方法,应由对象来调用Human2::eat();/*
报错提示:
Strict standards: Non-static method Human2::eat() should not be called statically
*/echo &#39;<br >&#39;;//Human2::intro();/*
直接报错:
Fatal error: Using $this when not in object context
*/

PHP オブジェクト指向メモ - 123 静的プロパティと静的メソッドの図

/ * PHP オブジェクト指向メモ - 123 静的プロパティと静的メソッドの図概要:

上で分析したように、実際には、非静的メソッドはクラス名によって静的に呼び出すことはできません

*/

$lisi = new Human2();$lisi->cry(); //5555

/*
Class->Access->Static Method Can

Class-。 >動的メソッド メソッドに this がない場合、論理的にはサポートされていません。 ありません。


オブジェクト -> 動的メソッドへのアクセス はい
オブジェクト -> 静的メソッド はい

*/


関連する推奨事項:

オブジェクト指向phpの継承、ポリモーフィズム、カプセル化の概要

phpオブジェクト指向の設計原則の概要

以上がPHP オブジェクト指向メモ - 123 静的プロパティと静的メソッドの図の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。