PHP 接口 | PHP OOP 接口
已發表: 2021-03-03目錄
介紹
PHP 是一種面向對象的語言,接口是面向對象編程語言的主要特徵之一。 該接口使編碼人員能夠在實現該接口的類中聲明包含不同定義的函數。 繼續閱讀以了解PHP 中的接口。 另外,通過文章中分享的PHP 中的接口示例來獲得更多的理解。
PHP中的接口
接口是面向對象編程中的一個特性,它允許在沒有實現的情況下創建函數。 實現需要包含在類中。 它有助於防止方法定義的複雜性,因為每個繼承接口的類都可以根據需要具有不同的實現。 PHP中接口的用法與類類似,唯一的區別是接口中的函數沒有實現,接口沒有變量。
PHP中接口的特點
- 該接口不包含代碼。
- 接口具有帶或不帶參數的方法聲明,但沒有定義。
- 實現接口的類應該包含接口中聲明的所有方法的定義。
- 一個類可以有多個接口的實現。
- 接口不能有非抽象方法。
接口的語法
接口需要在使用前聲明。 接口的語法類似於類的語法,唯一的區別是在聲明接口時使用 interface 關鍵字代替 class 關鍵字。 下面是在 PHP 中聲明接口的語法:
<?php
//在PHP中聲明接口
接口 <接口名稱>
{
//代碼
}
?>
接口內部聲明的方法可以通過類繼承接口來訪問。 該類在聲明類時使用implements 關鍵字繼承PHP 中的接口。
下面是在 PHP中實現接口的語法:
<?php
//類聲明
類 <Class Name> 實現 <Interface Name>
{
//代碼
}
?>
PHP中的接口示例
要了解接口的用法,讓我們看一下下面的示例:
<?php
//聲明接口
接口示例_Shape
{
公共函數 ShapeArea();
}
//類繼承接口
類 Shape1 實現 Example_Shape
{
公共函數 ShapeArea()
{
Echo '圓的面積';
}
}
//類繼承接口
類 Shape2 實現 Example_Shape
{
公共函數 ShapeArea()
{
Echo '廣場面積';
}
}
// 類不使用接口
類 Shape3
{
公共函數 AreaCal()
{
Echo '無接口';
}
}
$Obj1 = 新形狀 1; // 類 1 的對象
$Obj2 = 新 Shape2; // 類 2 的對象
$obj3 = 新 Shape3; // 類 3 的對象,不使用接口
迴聲 $obj1->ShapeArea();
迴聲'<br>';
迴聲 $obj2->ShapeArea();
迴聲'<br>';
迴聲 $obj3->AreaCal();
?>
輸出
圓的面積
正方形面積
無接口
輸出說明
Shape1 類具有在接口內聲明的函數的定義。 Shape1 實現了接口,因此,它可以訪問其中的函數並打印“圓的面積”。 類似的是對 Shape2 類和輸出“正方形面積”的解釋。 Shape3 類沒有實現接口,它作為 PHP 中的普通類工作。
多接口的實現
一個類也可以實現多個接口。 在這種情況下,該類需要定義在該類正在實現的所有接口中聲明的所有方法。 下面是在 PHP中實現多個接口的說明。
<?php
// 接口聲明
接口示例1
{
公共函數方法 1();
}
// 另一個接口的聲明
接口示例2
{
公共函數方法 2();
}
//實現上面聲明的兩個接口的類
類 class1 實現了 example1、example2
{
// interface1的方法定義
公共函數方法1
{
echo 'Inside interface1 method1';
}
//interface2的方法定義
公共函數方法2
{
echo '在interface2方法2內;
}
}
obj1 = 新類 1;
obj2 = 新類 2;
obj1->方法1;
obj2->方法2;
?>
輸出
內部接口1方法1
內部接口2方法2
多接口實現注意幾點
- 接口中聲明的所有方法都應該是公共的。
- 該函數不能有關鍵字abstract。
- 如果程序員忘記定義任何接口函數,代碼將拋出錯誤。
- 接口不能包含變量。
結帳: PHP 中的 OOP 概念
接口和抽像類的區別
以下是接口和抽像類之間的一些區別:
- 接口只包含聲明,而抽像類包含方法聲明及其定義。
- 接口中的方法只能是公共的,而抽像類中的方法可以聲明為公共的、私有的或受保護的。
- 一個類可以實現多個接口,而一個類只能擴展一個抽象方法。
結論
PHP中的接口是一種功能,它使用戶能夠在沒有定義的情況下聲明公共方法。 本文通過其語法和示例解釋了有關接口的所有信息。 我們希望本文中分享的信息有助於您理解這個概念。 您可以在 upGrad 博客上學習基於 PHP 的類似主題。 為了深入了解,您可以在 upGrad 註冊 PHP 在線認證課程。 upGrad提供許多證書課程,可以幫助您的職業和學習。
如果您有興趣了解有關全棧軟件開發的更多信息,請查看 upGrad 和 IIIT-B 的全棧軟件開發 PG 文憑,該文憑專為在職專業人士設計,提供 500 多個小時的嚴格培訓、9 個以上的項目,以及任務、IIIT-B 校友身份、實用的實踐頂點項目和頂級公司的工作協助。