この記事では、PHP におけるこの self static の違いを主に紹介します。これは、必要な友人に参照してもらえるように共有します。 https://blog.csdn.net/ mrzhouxiaofei /article/details/78648079
紹介しました
最近、私はソフトウェアエンジニアリングコースの設計をしていて、Laravelのソースコードを拾いに行って再度検索したところ、問題が発生したことがわかりました。自己静的について深く理解していなかった問題があったので、同じ間違いを繰り返さないように記録します。 Textthisこれは、現在のオブジェクトを指し、現在のオブジェクトの非静的変数と非静的メソッドにアクセスするために使用されます。<?phpclass Person { public $name; public function getName() { echo $this->name; } }$p = new Person();$p2 = new Person();$p->name = "小红";$p2->name = "小明";$p->getName(); // 小红$p2->getName(); // 小明
late static binding
と呼ばれます。<?phpclass Person { public static $name = "小红"; public static function getName() { echo self::$name; } }$p = new Person();$p2 = new Person();$p::getName(); // 小红$p2::getName(); // 小红$p::$name = "小明";$p::getName(); // 小明$p2::getName(); // 小明
遅延静的バインディング です。
後の静的バインディング概要
this は現在のオブジェクトを指し、現在のオブジェクトの非静的変数および非静的メソッドにアクセスするために使用されます。self はクラスを指し、通常は静的変数および静的メソッドにアクセスするために使用されます。実行前に、現在のクラスの静的メソッドがどのクラスを指すかが決定されます。
static は、通常、現在のクラスの静的変数および静的メソッドにアクセスするために使用されるクラスを指しますが、関連する推奨事項:
PHP における self、static、$this の違いと、後期静的バインディングの詳細な説明
以上がPHP におけるこの self static との違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。