親クラスの静的メソッドを、子クラスから呼び出すには、parent
キーワードを使うことができる。
同じクラスの静的メソッドを呼び出すには、self
キーワードを使うことができる。
書式
class クラスA // クラスを定義
{
static function メソッドA() { // 静的メソッドを定義
// メソッド内処理文
}
}
class クラスB extends クラスA // クラスAを継承し、クラスBを定義
{
static function メソッドB() { // 静的メソッドを定義
parent::メソッドA(); // 親クラスである「クラスA」の「メソッドA」の静的メソッドを呼び出す
}
}
{
static function メソッドA() { // 静的メソッドを定義
// メソッド内処理文
}
}
class クラスB extends クラスA // クラスAを継承し、クラスBを定義
{
static function メソッドB() { // 静的メソッドを定義
parent::メソッドA(); // 親クラスである「クラスA」の「メソッドA」の静的メソッドを呼び出す
}
}
ポイント
キーワードparent
、スコープ定義演算子::
のあとに、メソッド名、丸括弧()
を続ける。
丸括弧()
内に、引数を設定することもできる。
parent::メソッド名();
サンプル
<?php
class taxClass
{
public static function func_tax( $var, $varTax ) {
return $var * ( 1 + $varTax );
}
}
class taxClass5 extends taxClass
{
public static $varTax = 0.05;
public static function func_echo( $var ) {
echo parent::func_tax( $var, self::$varTax ) . '<br />';
}
}
class taxClass7 extends taxClass
{
public static $varTax = 0.07;
public static function func_echo( $var ) {
echo parent::func_tax( $var, self::$varTax ) . '<br />';
}
}
echo '税率' . taxClass5::$varTax * 100 . '%の場合: ';
taxClass5::func_echo( 100 );
echo '税率' . taxClass7::$varTax * 100 . '%の場合: ';
taxClass7::func_echo( 100 );
?>
class taxClass
{
public static function func_tax( $var, $varTax ) {
return $var * ( 1 + $varTax );
}
}
class taxClass5 extends taxClass
{
public static $varTax = 0.05;
public static function func_echo( $var ) {
echo parent::func_tax( $var, self::$varTax ) . '<br />';
}
}
class taxClass7 extends taxClass
{
public static $varTax = 0.07;
public static function func_echo( $var ) {
echo parent::func_tax( $var, self::$varTax ) . '<br />';
}
}
echo '税率' . taxClass5::$varTax * 100 . '%の場合: ';
taxClass5::func_echo( 100 );
echo '税率' . taxClass7::$varTax * 100 . '%の場合: ';
taxClass7::func_echo( 100 );
?>
↓↓↓出力結果↓↓↓
税率5%の場合: 105
税率7%の場合: 107
税率7%の場合: 107