[PHP] 静的プロパティは :: 、動的プロパティは ->


Q. ::(ダブルコロン)と->(矢印演算子、アロー演算子)の意味

A.公式のプロパティstaticから

:: 静的プロパティへのアクセス:self::$property

-> 動的プロパティへのアクセス:$this->property

 

下記コードは公式staticのサンプル

 

下記コードの補足

クラスの中にはプロパティ「定数や変数」、メソッド「関数」を含めることができる(公式

new命令によりオブジェクトの初期化と作成

extendsによりオブジェクトの継承

 

<?php
class Foo
{
public static $my_static = ‘foo’;  //定数

public function staticValue() {
return self::$my_static;
}
}

class Bar extends Foo
{
public function fooStatic() {  //関数
return parent::$my_static;
}
}

//クラスFooの定数 my_static はすでに定義済みなので静的プロパティである
print Foo::$my_static . “\n”;

 

//クラスFooを親としてオブジェクト$fooを初期化・作成

$foo = new Foo();

 

//作成された$fooは親Fooを継承するので staticValue関数を使える。ただし$fooは動的に作成されたのでこのstaticValue()は動的メソッド
print $foo->staticValue() . “\n”;

 

//$fooは親Fooのプロパティmy_static も継承し使えるが、$fooは動的に作成されたのでこのmy_staticは動的プロパティ
print $foo->my_static . “\n”;

?>

 

PHPメニューへ戻る

 




トップページへ