メソッドが定義されているクラスに応じて、現在のクラスへの静的参照を取得するには、self:: または __CLASS__ を使用します。 static:: を使用すると、現在のメソッドが定義されているクラスに解決されなくなり、実際には実行時に計算されます。静的メソッドの呼び出しに使用できるため (ただし、これに限定されません)、「静的バインディング」とも呼ばれます。 静的バインディングは、継承スコープ内で静的に呼び出されたクラスを参照するために使用される、PHP 5.3.0 で追加された機能です。 PHP クラスにおける static と self の違い。PHP クラスの定義では、self と static がよく使われます。実行すると、結果に違いがないことがよくありますが、明らかに違いがあります。違いがないのなら、なぜ 2 つあるのでしょうか。 1. 両者の違い静的は遅延バインディングを使用する そのため、static は親クラスからの呼び出しなのか子クラスからの呼び出しなのかを正確に知ることができます。 たとえば、これはスタティックが賢い子供であることを示しています。彼は親戚全員を正確に認識できます。 自分はちょっとバカだ、自分の両親しか知らない 2. コードの見た目が違う次のコードからわかる 自己とは、自分を定義する階級のことであり、つまり、彼は自分の両親しか知らない。 静的とは、彼を呼び出すクラスを指し、つまり、彼は親戚を認識できる <?php クラスの保護者 { protected static $name = '私はあなたの親です'; パブリック静的関数 who_self() { self::$name を返します。 } パブリック静的関数 who_static() { static::$name を返します。 } パブリック静的関数 get_self() { 新しい self() を返します。 } パブリック静的関数 get_static() { 新しいstatic()を返します。 } } クラス親族は親族を拡張する { protected static $name = '私はあなたの親戚です'; } var_dump(kinsfolk::who_self()); //私はあなたの親ですvar_dump(kinsfolk::who_static()); //私はあなたの親戚ですvar_dump(kinsfolk::get_self()); //object(parents)#1 (0) {} var_dump(kinsfolk::get_static()); //オブジェクト(kinsfolk)#1 (0) {} 簡単に言えば、 Self はそれが記述されているクラスであり、このクラスが実際に呼び出されます。 staticは使用されているクラス、つまり親クラスで記述したstaticを表し、それがサブクラスによって上書きされ、サブクラスのメソッドまたは属性が使用されます。 要約するPHP クラスにおける static と self の違いに関するこの記事はこれで終わりです。PHP クラスにおける static と self の違いについての詳細は、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: MySQLデータベースとテーブルシャーディングの概要
1. 現在のすべての接続の詳細情報を表示します。 ./mysqladmin -uadmin -p -...
・【シーン説明】 HTTP1.1 以降、HTTP プロトコルは永続的な接続 (長い接続とも呼ばれます...
一般的な CSS コードでは、UI レイアウトや互換性に関して軽微な問題が発生するだけです。しかし、...
目次docker システム df docker システム プルーンdocker systemc 情報...
ローカルEclipse上にTomcatサーバーを作成する場合、 tomcaインストールディレクトリの...
この記事では、モグラ叩きゲームを実装するためのJavaScriptの具体的なコードを参考までに紹介し...
この記事では、MySQL 最適化のヒントで重複したエントリを削除する方法を例を使って説明します。ご参...
親ファイル React をインポートし、{useState} を 'react' か...
Reactのdiffアルゴリズムの理解diffアルゴリズムは、 Virtual DOMの変更された部...
1. GitLabの紹介Gitlab 公式アドレス: https://about.gitlab.co...
<br />Web ページをデザインするときには、いつも不快なことに遭遇します。最も一般...
MySql Nullフィールド判定とIFNULL失敗処理ps: (プロセスを表示したくない場合は、S...
序文一部の CSS 相互作用の影響により、要素に設定されたz-index実際のサイズに応じて重ね合わ...
ページドメインの関係:メインページ a.html はドメイン A: www.jb51.net に属し...
必ずデータをバックアップすることを忘れないでください。データは貴重なものです! ! !コンピュータモ...