同じクラスの静的プロパティへアクセス

同じクラスの静的プロパティへアクセスするには、selfキーワードを使うことができる。

親クラスの静的プロパティへアクセスするには、parentキーワードを使うことができる。

書式

class クラスA // クラスを定義
{
    public static $プロパティ名 =; // プロパティを定義
    function メソッド名() { // メソッドを定義
        self::$プロパティ名;  // 同じクラスである「クラスA」の「プロパティ名」の静的プロパティへアクセス
    }
}
class クラスB extends クラスA // クラスAを継承し、クラスBを定義
{
    public static $プロパティ名 =; // プロパティを定義
    function メソッドB() { // メソッドを定義
        parent::$プロパティ名;  // 親クラスである「クラスA」の「プロパティ名」の静的プロパティへアクセス
        self::$プロパティ名;  // 同じクラスである「クラスB」の「プロパティ名」の静的プロパティへアクセス
    }
}

ポイント

キーワードself、スコープ定義演算子::のあとに、$を入れ、プロパティ名を続ける。

$を忘れがちなので、その点に注意。

self::$プロパティ名;

サンプル

<?php
class taxClass
{
    public static $varTax = 0.05;
    function func_tax( $var ) {
        return $var * ( 1 + self::$varTax );
    }
}
class echoTaxClass extends taxClass
{
    public static $varTax = 0.07;
    function func_tax( $var ) {
        return $var * ( 1 + self::$varTax );
    }
    function func_echo( $var ) {
        echo '税込:' . parent::func_tax( $var ) . '円<br />';
        echo '税率:' . parent::$varTax * 100 . '%<br /><br />';
        echo '税込:' . self::func_tax( $var ) . '円<br />';
        echo '税率:' . self::$varTax * 100 . '%<br />';
    }
}
$var_class = new echoTaxClass();
$var_class->func_echo( 100 );
?>

↓↓↓出力結果↓↓↓

税込:105円
税率:5%

税込:107円
税率:7%

スポンサード リンク

カテゴリー: PHP, オブジェクト指向プログラミング タグ: パーマリンク