本文目錄一覽:
php中的接口是指什麼?
接口interface是一個規定,給人繼承用的東西,有點像抽象類。
接口定義了實現某種服務的一般規範,聲明了所需的函數和常量,但不指定如何實現。之所以不給出實現的細節,是因為不同的實體可能需要用不同的方式來實現公共的方法定義。關鍵是要建立必須實現的一組一般原則,只有滿足了這些原則才能說實現了這個接口。
擴展資料
PHP接口(interface)的特點 :
1、接口的方法必須是公開的。
2、接口的方法默認是抽象的,所以不在方法名前面加abstract。
3、接口可以定義常量,但不能定義成員屬性,常量的定義和用法和類中常量一樣。
4、類可以實現多個接口(相當於把多個功能集於一身,如手機實現了小靈通、MP3、MP4的功能)
5、接口也可以繼承接口。
PHP同大多數的面向對象語言一樣,並不支持多重繼承。如果需要實現多重繼承功能,在PHP中,可以通過接口,它是PHP解決多重繼承問題的方法,在php5.4版本之後有個類的新特性trait,有興趣的可以百度下。
php 接口大概要怎麼寫
PHP 接口
接口
使用接口(interface),你可以指定某個類必須實現哪些方法,但不需要定義這些方法的具體內容。
我們可以通過interface來定義一個接口,就像定義一個標準的類一樣,但其中定義所有的方法都是空的。
接口中定義的所有方法都必須是public,這是接口的特性。
實現
要實現一個接口,可以使用implements操作符。類中必須實現接口中定義的所有方法,否則 會報一個fatal錯誤。如果要實現多個接口,可以用逗號來分隔多個接口的名稱。
Note:
實現多個接口時,接口中的方法不能有重名。
Note:
接口也可以繼承,通過使用extends操作符。
常量
接口中也可以定義常量。接口常量和類常量的使用完全相同。 它們都是定值,不能被子類或子接口修改。
範例
Example #1 接口代碼示例
?php
// 聲明一個’iTemplate’接口
interface iTemplate
{
public function setVariable($name, $var);
public function getHtml($template);
}
// 實現接口
// 下面的寫法是正確的
class Template implements iTemplate
{
private $vars = array();
public function setVariable($name, $var)
{
$this-vars[$name] = $var;
}
public function getHtml($template)
{
foreach($this-vars as $name = $value) {
$template = str_replace(‘{‘ . $name . ‘}’, $value, $template);
}
return $template;
}
}
// 下面的寫法是錯誤的,會報錯:
// Fatal error: Class BadTemplate contains 1 abstract methods
// and must therefore be declared abstract (iTemplate::getHtml)
class BadTemplate implements iTemplate
{
private $vars = array();
public function setVariable($name, $var)
{
$this-vars[$name] = $var;
}
}
?
Example #2 Extendable Interfaces
?php
interface a
{
public function foo();
}
interface b extends a
{
public function baz(Baz $baz);
}
// 正確寫法
class c implements b
{
public function foo()
{
}
public function baz(Baz $baz)
{
}
}
// 錯誤寫法會導致一個fatal error
class d implements b
{
public function foo()
{
}
public function baz(Foo $foo)
{
}
}
?
Example #3 多個接口間的繼承
?php
interface a
{
public function foo();
}
interface b
{
public function bar();
}
interface c extends a, b
{
public function baz();
}
class d implements c
{
public function foo()
{
}
public function bar()
{
}
public function baz()
{
}
}
?
Example #4 使用接口常量
?php
interface a
{
const b = ‘Interface constant’;
}
// 輸出接口常量
echo a::b;
// 錯誤寫法,因為常量的值不能被修改。接口常量的概念和類常量是一樣的。
class b implements a
{
const b = ‘Class constant’;
}
?
你也可以看看instanceof關鍵字的文檔。
php開發app接口需要注意什麼
1.制定規範
開發前一定要定好一個規範,比如要定好數據返回的通用參數和格式。關於數據格式,用的比較多的有xml和json,我建議用json,因為json比xml的好處更多。
2.精簡的返回數據
接口數據因符合需要什麼返回什麼的原則,比如要查詢某個用戶的餘額和註冊時間,網頁裏面的做法可能是select * from user where uid=1,但是接口一定要select balance,regtime from user where uid=1。因為接口返回數據是要有開銷的,要流量的,能少返回數據就盡量少返回,這樣可以大大的提高性能。
3.數據類型要嚴格
要注意數據的類型,整數類型的數據一定要轉為int,因為app客戶端開發的java、object-c語言對數據類型比較嚴格,類型不對會照成app閃退。
4.要寫接口文檔
一定要寫好接口文檔,並按照模塊寫,而且還要書寫規範,最好的格式是:
接口請求地址;請求參數(包括參數名、類型、是否必填);測試參數舉例;返回參數(參數名,並註明每個參數的含義)。
這樣哪怕以後項目很大,以不會照成維護困難的問題。
5.保證代碼正確性
要驗證保證代碼正確無誤,而且生成環境中要屏蔽掉錯誤,避免頭部有額外的輸出,照成返回的json等數據解析失敗而導致app閃退等。
6.要優化代碼的性能
app要求響應迅速,這樣才能給用戶比較好的體驗感。所以移動接口端在處理業務邏輯的時候,要避免不要執行太複雜的sql語句,或者含有大量的循環,能做成緩存的盡量做緩存,比如將首頁的熱點模塊信息可以存到redis緩存中。在不考慮網速的情況下,比較理想的接口響應時間應該是200毫秒以內。
7.不要隨意更改舊接口
app不像網頁,app一旦發佈,有人使用之後,接口就不要亂修改了。以後升級也是,修改要在保證接口原有結構之上進行額外的擴展,否則會導致調用舊版接口的app出現bug。
8. 注意接口的安全
安全高於一切,必須要保證接口的安全。電話號碼等敏感信息在傳輸的過程中一定要加密,否則可能會被別人抓包到。拿取用戶信息的接口一定要驗證權限,以防止接口被惡意調用,泄密用戶信息,甚至篡改信息。
php接口有什麼作用
首先應該明白接口是什麼含義,接口是對外開放的,調用接口然後重寫其中的方法,如果你不要使用接口裏面的方法,那麼接口就沒有意義了,這樣也是為了整體代碼的控制性。
本質上php接口其實就是一種規範,如果是多人開發的項目,這個接口可能就起到比較重要的作用了
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/245226.html