PHPの基礎知識:クラスとオブジェクト (4)範囲解決演算子(::)

WBOY
リリース: 2016-06-13 12:35:17
オリジナル
769 人が閲覧しました

スコープ解決演算子 (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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート