ホームページ >バックエンド開発 >PHPチュートリアル >範囲解決演算子を使用した PHP サンプル コード共有

範囲解決演算子を使用した PHP サンプル コード共有

黄舟
黄舟オリジナル
2017-03-30 10:08:431793ブラウズ

オブジェクト指向のプログラミングは、->などの独自の演算子を使用します。このシンボルは、オブジェクト内の独自のメンバーにアクセスするために使用されます。もう 1 つは範囲解決演算子で、2 つのコロンが結合されたもの (::) です。この表記法は、(オブジェクト内ではなく) クラス内のメンバーにアクセスするために使用されます。使用法は次のとおりです:

ClassName::methodName();
ClassName::propertyName;
この構造体は 2 つの場所で使用できます:

1. クラスを使用するとき、親クラスとサブクラスが同じ

プロパティとメソッド

を持つ場合、混乱を避けるためにそれを使用できます。 。 2. クラスの外にいる場合、

オブジェクトを作成せずに

クラスのメンバーにアクセスするには、この演算子を使用します。 クラス内で $this を使用して現在のオブジェクトのインスタンスを

参照

できるのと同じように、キーワード self は現在のクラスへの参照として使用されます。

class SomeClass {
    function construct() {
        self::do();
    }

    protected function do(){
        echo "done!";
    }
}
このコードでは、self::do() が現在のクラスの do() メソッドをトリガーします。

親クラスのメンバーを参照するには、キーワードparentと範囲解決演算子を使用して参照できます:

class SomeOtherClass extends SomeClass {
    function construct() {
        parent::do();
    }
}

ほとんどの場合、オーバーライドされたメソッドにアクセスするには範囲解決演算子を使用します。また、これを使用して

static

および定数メンバーにアクセスすることもできます。 注: 静的プロパティと同様に、クラス定数には、クラス (またはそのサブクラス) のすべてのインスタンスからアクセスできます。ただし、その値は変更できません。クラス定数は、

const キーワード

の後に定数名 (ドル記号なし) を使用して作成されます。 $obj->PI や $obj::PI などのオブジェクトを通じて定数にアクセスすることはできませんが、ClassName::CONSTANT_NAME はどこでも使用できます。クラス内のメソッドで self::CONSTANT_NAME を使用することもできます。 サンプルプログラム:

<?php  
	class Rectangle {
		protected static $_count = 0;
		protected $width;
		protected $height;

		function construct($width, $height) {
			$this->width = $width;
			$this->height = $height;
			self::$_count++;
			echo "已成功创建".self::$_count."个Rectangle对象<br>";
		}

		function destruct() {
			echo "销毁一个Rectangle对象<br>";
		}

		function getArea() {
			echo "Rectangle面积是:".($this->width * $this->height."<br>");
		}

		function getConunt() {
			return self::$_count;
		}
	}

	class Square extends Rectangle {
		function construct($side) {
			$this->width = $side;
			$this->height = $side;
			parent::$_count++;
			echo "已成功创建".parent::$_count."个Rectangle(Square)对象<br>";
		}
	}

	$rec = new Rectangle(10, 5);
	$rec->getArea();

	$square = new Square(10);
	$square->getArea();

?>

実行結果:

以上が範囲解決演算子を使用した PHP サンプル コード共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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