ホームページ  >  記事  >  バックエンド開発  >  PHP で静的メソッドを使用する場合のいくつかの注意事項

PHP で静的メソッドを使用する場合のいくつかの注意事項

怪我咯
怪我咯オリジナル
2017-07-05 10:17:481072ブラウズ

この記事では主に、PHP で 静的メソッドを使用する際のいくつかの 注意事項 を紹介し、PHP の静的メソッドを呼び出す際のテクニックとエラーが発生しやすい点を例を挙げて説明します。 . 紹介しました PHP で静的メソッドを使用する際の一般的な注意事項をいくつか紹介します。皆さんの参考に共有してください。具体的なメソッドは次のとおりです:

1. クラス内のメソッドが static で宣言されていない場合でも、変更可能なクラス メンバー変数を使用しない場合でも、

operator

:: を使用して外部から呼び出すことができます。 to call; 2. 静的に呼び出される (:: 演算子を使用して) メソッド内の $this の値は、それを定義するクラスではなく、呼び出しのコンテキストによって決定されます !!

たとえば、次のコード:

<?php 
class TestClass1 
{ 
  public $normal_v = &#39;normal_v from TestClass1&#39;; 
  public static $STATIC_V = &#39;STATIC_V from TestClass1&#39;; 
  public function test_func1() 
  { 
    echo $this->normal_v.&#39;<br />&#39;.self::$STATIC_V; 
  } 
} 
class TestClass2 
{ 
  public $normal_v = &#39;normal_v from TestClass2&#39;; 
  public static $STATIC_V = &#39;STATIC_V from TestClass2&#39;; 
  public function test_func2() 
  { 
    TestClass1::test_func1(); 
  } 
} 
$t2 = new TestClass2(); 
$t2->test_func2();
このコードの出力は何ですか? Normal_v from TestClass1 df250b2156c434f3390392d09b1c9563 正しい出力は次のとおりです。 TestClass1 からの TestClass2STATIC_V

注: test_func1() は TestClass1 で定義されていますが、TestClass2 で呼び出され、その内部 $this 変数は TestClass2 によって決定されます

実際、これら 2 つのクラス間の関係は "双方向関連付け" "。

興味のある友人は、この記事の例をテストして実行してみると、新たな成果が得られると信じています。

以上がPHP で静的メソッドを使用する場合のいくつかの注意事項の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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