同じクラスの静的プロパティへアクセスするには、self
キーワードを使うことができる。
親クラスの静的プロパティへアクセスするには、parent
キーワードを使うことができる。
書式
class クラスA // クラスを定義
{
public static $プロパティ名 = 値; // プロパティを定義
function メソッド名() { // メソッドを定義
self::$プロパティ名; // 同じクラスである「クラスA」の「プロパティ名」の静的プロパティへアクセス
}
}
class クラスB extends クラスA // クラスAを継承し、クラスBを定義
{
public static $プロパティ名 = 値; // プロパティを定義
function メソッドB() { // メソッドを定義
parent::$プロパティ名; // 親クラスである「クラスA」の「プロパティ名」の静的プロパティへアクセス
self::$プロパティ名; // 同じクラスである「クラスB」の「プロパティ名」の静的プロパティへアクセス
}
}
{
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 );
?>
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%
税率:5%
税込:107円
税率:7%