今日は PHP に関連するシンボルをいくつか見ました。 1 つは @ で、PHP インタプリタがエラーを報告するのを抑制するために変数の前に追加されます。つまり、エラーが発生しても表示されません。
さらに重要なシンボルとして、PHP の範囲解決演算子 (::) があります。
インスタンスを宣言せずに、クラス内の関数、または基本クラス内の関数と変数にアクセスするのに便利です。この場合は :: 演算子が使用されます。
コードをコピー コードは次のとおりです:
class A {
function example() {
echo "私は元の関数 A::example() です。
n ";
}
}
class B extends A {
function example() {
echo "私は再定義された関数 B::example() です。
n";
A::example ();
}
}
// クラス A にはオブジェクトがありません。これは
// 元の関数 A::example() です。
/ クラス
$b = new B; の B オブジェクトを作成します
// これは、次のように出力されます
// 私は再定義された関数 B::example() です。
私は元の関数 A です::example( ).
$b->example();
上記の例はクラス A の関数 example() を呼び出していますが、クラス A のオブジェクトはありません。ここでは、$a->example() または同様のメソッドを使用して example() を呼び出すことはできません。代わりに、example() をクラス関数として、つまり、このクラスのオブジェクトではなく、クラス自体の関数として呼び出します。
ここにはクラス関数がありますが、クラス変数はありません。実際、関数が呼び出されるとき、オブジェクトはまったくありません。したがって、クラス関数はオブジェクトを使用できません (ただし、ローカル変数またはグローバル変数は使用できます)。また、$this 変数をまったく使用しないこともあります。
上記の例では、クラス B が関数 example() を再定義します。クラス A で最初に定義された関数 example() はマスクされ、:: 演算子を使用してクラス A の example() 関数にアクセスしない限り有効になりません。例: A::example() (実際には、parent::example() として記述する必要があります。これについては次の章で説明します)。