インターフェイス(オブジェクト・インターフェイス)は、あるクラスが実装する必要があるメソッドを、宣言しておくもの。インターフェイス内で、メソッドを実装することはできない。インターフェイス内で宣言したメソッドは、public
でなければならない。
インターフェイスは、interface
キーワードを前に付けて定義する。
クラスを定義するとき、implements
演算子を使い、インターフェイスを要件とすることができる。インターフェイスを要件ととしたクラスは、インターフェイス内で宣言した全てのメソッドを、実装しなければならない。ひとつでも実装し忘れると、エラーとなる。
書式
interface インターフェイス名 // インターフェイスを定義
{
public function メソッド名(); // あるクラスが実装する必要があるメソッドを宣言
}
class クラス名 implements インターフェイス名 // クラスを定義
{
public function メソッド名() { // 実装する必要があるメソッドを定義
// メソッド内処理文;
}
}
{
public function メソッド名(); // あるクラスが実装する必要があるメソッドを宣言
}
class クラス名 implements インターフェイス名 // クラスを定義
{
public function メソッド名() { // 実装する必要があるメソッドを定義
// メソッド内処理文;
}
}
サンプル
<?php
interface taxInterface
{
public function func_tax( $var );
public function func_echo( $var );
}
class taxClass5 implements taxInterface
{
public $varTax = 0.05;
public function func_tax( $var ) {
return $var * ( 1 + $this->varTax );
}
public function func_echo( $var ) {
echo '税込:' . $this->func_tax( $var ) . '円<br />';
echo '税率:' . $this->varTax * 100 . '%<br /><br />';
}
}
class taxClass7 implements taxInterface
{
public $varTax = 0.07;
public function func_tax( $var ) {
return $var * ( 1 + $this->varTax );
}
public function func_echo( $var ) {
echo '税込:' . $this->func_tax( $var ) . '円<br />';
echo '税率:' . $this->varTax * 100 . '%<br /><br />';
}
}
$var_class = new taxClass5();
$var_class->func_echo( 100 );
$var_class = new taxClass7();
$var_class->func_echo( 100 );
?>
interface taxInterface
{
public function func_tax( $var );
public function func_echo( $var );
}
class taxClass5 implements taxInterface
{
public $varTax = 0.05;
public function func_tax( $var ) {
return $var * ( 1 + $this->varTax );
}
public function func_echo( $var ) {
echo '税込:' . $this->func_tax( $var ) . '円<br />';
echo '税率:' . $this->varTax * 100 . '%<br /><br />';
}
}
class taxClass7 implements taxInterface
{
public $varTax = 0.07;
public function func_tax( $var ) {
return $var * ( 1 + $this->varTax );
}
public function func_echo( $var ) {
echo '税込:' . $this->func_tax( $var ) . '円<br />';
echo '税率:' . $this->varTax * 100 . '%<br /><br />';
}
}
$var_class = new taxClass5();
$var_class->func_echo( 100 );
$var_class = new taxClass7();
$var_class->func_echo( 100 );
?>
↓↓↓出力結果↓↓↓
税込:105円
税率:5%
税込:107円
税率:7%
税率:5%
税込:107円
税率:7%