ホームページ >バックエンド開発 >PHPチュートリアル >範囲解決演算子を使用した PHP サンプル コード共有
オブジェクト指向のプログラミングは、->などの独自の演算子を使用します。このシンボルは、オブジェクト内の独自のメンバーにアクセスするために使用されます。もう 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 サイトの他の関連記事を参照してください。