スコープ解決演算子 (Paamayim Nekudotayim とも呼ばれます)、またはより単純にコロンのペアを使用して、静的メンバー、メソッド、定数にアクセスできます。また、オーバーライドされたクラスのメンバーやメソッドにアクセスするためにも使用できます。
クラス外のこれらの静的メンバー、メソッド、定数にアクセスする場合は、クラス名を使用する必要があります。
Paamayim Nekudotayim はヘブライ語で二重コロンを意味します。
クラスの外で :: 演算子を使用する
class MyClass {
const CONST_VALUE = '定数値';
echo MyClass::CONST_VALUE;
2 つの特別なキーワード self とparent は、クラス内のメンバーまたはメソッドにアクセスするために使用されます。
例:
class OtherClass extends MyClass
{
public static $my_static = 'static var';
public static function doubleColon() {
echoparent ::CONST_VALUE . " n";
echo self::$my_static ;
}
}
OtherClass::doubleColon();親クラスのメソッドをオーバーライドすると、PHP は、子クラスで呼び出されるまで、親クラスでオーバーライドされたメソッドを実行しなくなります。 (それはナンセンスですか? いいえ、これは PHP と他の主流言語とのちょっとした違いです)。このメカニズムは、コンストラクターとデストラクター、オーバーロード、およびマジック関数にも機能します。
class MyClass
{
protected function myFunc() {
echo "MyClass::myFunc() n";
}
}
class OtherClass extends MyClass
{
// 親クラスのメソッドをオーバーライドします
public function myFunc()
{
// ただし、オーバーライドされたメソッドを呼び出すことはできます
parent:: myFunc();
echo "OtherClass::myFunc() n";
$class = new OtherClass(); );
--------------------------------- -----------------------------------------------
??重要??静的メソッドまたはメンバーにアクセスする場合は、クラス名:: メソッドを使用する必要があります。
もう 1 つの注意: PHP は、コンストラクターやデストラクターを含む親クラスのメソッドを積極的に呼び出しません。
このテキストを参照してください: http://163xiaofan.blog.163.com/blog/static/1713578020061027101820973