インタフェースの仕様は、特にどのように、まだ次のようにローカルおよび文言の特定のニーズにサブクラスの継承、注意を払うの書き方を見てする必要があります操作を実行するために、テンプレートクラスと考えることができます。
- インターフェイスのインターフェイスメソッドは一般公開でなければなりません。
<?php
interface A{
public function info();
}
ここで、公開は次のように省略、省略することができます。
<?php
interface A{
function info();
}
メソッドの型の定義は、致命的なエラーを報告する場合:アクセス方法、Aのためのタイプのインターフェイス::情報を()/wwwroot/api.phpでは省略ライン3上に存在する必要があります例えば:
<?php
interface A{
private function info();
}
- これは、インターフェイスのインスタンス化インターフェースを必要としませんが、それは継承を実装する必要がある、とのインタフェースで定義された変数は、次のように言葉を選んだ、送信継承する必要があります。
<?php
interface A{
private function info($name);
}
class B implements A{
function info($name){
echo "Hello{$name}!";
}
}
$obj = new B();
$obj -> info('小桥');
- インターフェースインターフェースは、定数を定義することができますが、のようなメンバ変数の定義を許可していません。
<?php
class A {
const Num = 100;
}
問題ありませんが、エラーメッセージが表示されるメンバ変数の定義:解析エラー:構文エラー、予期しない「$ NUM」(T_VARIABLE)、上のライン3 /wwwroot/api.phpに機能(T_FUNCTION)またはCONST(T_CONSTを)期待して、たとえば、 :
<?php
class A {
$num = 100;
}
- 致命的なエラーが発生した場合ときに抽象クラスとないクラスで定義された非メソッド・インターフェースのサブクラス:致命的なエラー:アクセス方式、上のライン2でなければなりません/wwwroot/api.phpでは省略A ::情報の型()のインターフェース、例えば、 :
<?php
interface A{
function info($name);
}
class B implements A{
function a($name){
echo "Hello{$name}!";
}
}
- インタフェース関数インタフェースメソッドは、サブクラスの定義も定義が必要な場合例えば、デフォルト値を定義することは推奨されません。
<?php
interface A{
function info($name = '小明');
}
class B implements A{
function info($name){
echo "Hello{$name}!";
}
}
表示されるBの宣言::情報:致命的なエラー ( 6行目の/wwwroot/api.phpで名=「ボブ」)あなたは、たとえば、情報()メソッドの値を渡す場合でも致命的なエラー:
<?php
interface A{
function info($name = '小明');
}
class B implements A{
function info($name){
echo "Hello{$name}!";
}
}
$obj = new B();
$obj -> info('小明');
- サブクラスは複数のインタフェースを継承するとの間のインタフェースを継承することができます。
//定义接口 A
interface A{
function info();
}
//定义接口 B 并继承接口 A
interface B extends A{
function eat($name, $food);
}
//定义子类 C 使用接口 B
class C implements B{
function info(){
echo '接口继承<br/>';
}
function eat($name = '小明', $food = '菜'){
echo $name . "正在吃" . $food . '<br>';
}
}
$demo = new C();
$demo -> info();
$demo -> eat();
$demo -> eat('小红', '苹果');