ホームページ >バックエンド開発 >PHPチュートリアル >PHPの範囲解析演算子(::)の使い方の分析と説明

PHPの範囲解析演算子(::)の使い方の分析と説明

黄舟
黄舟オリジナル
2017-07-02 11:39:531094ブラウズ

今日、PHP に関連するシンボルをいくつか見ました。 1 つは @ で、PHP インタプリタがエラーを報告するのを抑制するために変数の前に追加されます。つまり、エラーが発生しても表示されません。

今日は PHP に関連するシンボルをいくつか見ました。 1 つは @ で、PHP インタプリタがエラーを報告するのを抑制するために変数の前に追加されます。つまり、エラーが発生しても表示されません。
さらに重要なシンボルとして、PHP のスコープ解決operator(::) があります。
インスタンスを宣言せずに、クラス内の 関数、または基本クラス内の関数と変数にアクセスすると便利です。この場合、 :: 演算子 が使用されます。

<?php 
class A { 
function example() { 
echo "I am the original function A::example().<br />\n"; 
} 
} 
class B 
extends
 A { 
function example() { 
echo "I am the redefined function B::example().<br />\n"; 
A::example(); 
} 
} 
// A 类没有
对象
,这将输出 
// I am the original function A::example().<br /> 
A::example(); 
// 建立一个 B 类的对象 
$b = new B; 
// 这将输出 
// I am the redefined function B::example().<br /> 
// I am the original function A::example().<br /> 
$b->example(); 
?>


上記の例ではクラス A の関数 example() を呼び出していますが、ここにはクラス A のオブジェクトがないため、$a->example() などのメソッドを使用して example() を呼び出すことはできません。代わりに、example() をクラス関数として、つまり、このクラスのオブジェクトではなく、クラス自体の関数として呼び出します。
ここにはクラス関数がありますが、クラス変数はありません。実際、関数が呼び出されるとき、オブジェクトはまったくありません。したがって、クラスの関数はオブジェクトを使用できません (ただし、ローカル変数またはグローバル変数は使用できます)。また、$this 変数をまったく使用しないこともあります。
上記の例では、クラス B が関数 example() を再定義します。クラス A で最初に定義された関数 example() はマスクされ、:: 演算子を使用してクラス A の example() 関数にアクセスしない限り有効になりません。例: A::example() (実際には、parent::example() として記述する必要があります。これについては次の章で説明します)。
さらに言えば、現在のオブジェクトにはオブジェクト変数がある可能性があります。したがって、オブジェクト関数内で $this とオブジェクト変数を使用できます。

以上がPHPの範囲解析演算子(::)の使い方の分析と説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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