介面php
『壹』 php 寫介面一般遵循什麼規范,或者標准。
interface面向對象編程的一個重要思想介面是一個類的抽象 在介面中只定義方法卻不是先方法interface Ibook {function ready();function weite();} 累如果要實現介面就必須 寫出介面中所有的方法class myBook implements Ibook{function ready(){echo "ready()";}function write(){echo "write()";}}介面在代碼中起規范代碼作用但是php中對介面的支持沒有java C#等完全面向對象語言的強大
『貳』 PHP介面怎麼寫
。。。我感覺你不是太懂PHP基礎,首先要明白介面基礎的寫法,再了解或使用框架。
『叄』 php中的介面是指什麼
介面interface是一個規定,給人繼承用的東西,有點像抽象類。
介面定義了實現某種服務的一般規范,聲明了所需的函數和常量,但不指定如何實現。之所以不給出實現的細節,是因為不同的實體可能需要用不同的方式來實現公共的方法定義。關鍵是要建立必須實現的一組一般原則,只有滿足了這些原則才能說實現了這個介面。
(3)介面php擴展閱讀
PHP介面(interface)的特點 :
1、介面的方法必須是公開的。
2、介面的方法默認是抽象的,所以不在方法名前面加abstract。
3、介面可以定義常量,但不能定義成員屬性,常量的定義和用法和類中常量一樣。
4、類可以實現多個介面(相當於把多個功能集於一身,如手機實現了小靈通、MP3、MP4的功能)
5、介面也可以繼承介面。
PHP同大多數的面向對象語言一樣,並不支持多重繼承。如果需要實現多重繼承功能,在PHP中,可以通過介面,它是PHP解決多重繼承問題的方法,在php5.4版本之後有個類的新特性trait,有興趣的可以網路下。
『肆』 php介面開發教程
PHP與大多數面向對象編程語言一樣,不支持多重繼承.也就是說每個類只能繼承一個父類.為了解決這個問題,PHP引入了介面,介面的思想是指定了一個實現了該介面的類必須實現的一系列方法.介面是一種特殊的抽象類,抽象類又是一種特殊的類,所以介面也是一種特殊的類,為什麼說介面是一種特殊的抽象類呢?如果一個抽象類裡面的所有的方法都是抽象方法,那麼我們就換一種聲明方法使用「介面「;也就是說介面裡面所有的方法必須都是聲明為抽象方法,另外介面裡面不能聲明變數(但可聲明常量constant),而且介面裡面所有的成員都是public許可權的。所以子類在實現的時候也一定要使用public許可權實限。
聲明一個類的時候我們使用的關鍵字是」class」,而介面一種特殊的類,使用的關鍵字是「interface」;
類的定義: class 類名{ … } ,介面的聲明:interface 介面名{ …}
代碼
代碼
<?php
//定義一個介面使用interface關鍵字,「One」為介面名稱
interface One
{
//定義一個常量
const constant = 'constant value';
//定義了一個抽象方法」fun1」
public function fun1();
//定義了抽象方法」fun2」
public function fun2();
}
?>
上例中定義了一個介面」one」,裡面聲明了兩個抽象方法「fun1」和」fun2」,因為介面裡面所有的方法都是抽象方法,所以在聲明抽象方法的時候就不用像抽象類那樣使用」abstract」這個關鍵字了,默認的已經加上這個關鍵字,另外在介面里邊的」public」這個訪問許可權也可以去掉,因為默認就是public的,因為介面里所有成員都要是公有的,所在對於介面裡面的成員我們就不能使用「private」的和」protected」的許可權了,都要用public或是默認的。另外在介面裡面我們也聲明了一個常量「constant「, 因為在介面裡面不能用變數成員,所以我們要使用const這個關鍵字聲明。
因為介面是一種特殊的抽象類,裡面所有的方法都是抽象方法,所以介面也不能產生實例對象; 它也做為一種規范,所有抽象方法需要子類去實現。
我們可以使用」extends」關鍵字讓一個介面去繼承另一個介面:
<?php
//使用」extends」繼承另外一個介面
interface Two extends One
{
function fun3();
function fun4();
}
?>
而我們定義一介面的子類去實現介面中全部抽象方法使用的關鍵字是」implements」,而不是我們前面所說的」extends」;
代碼
<?php
//使用「implements」這個關鍵字去實現介面中的抽象方法 介面和類之間
class Three implements One
{
function fun1()
{
…
}
function fun2()
{
…
}
}
//實現了全部方法,我們去可以使用子類去實例化對象了
$three=new Three();
?>
我們也可以使用抽象類,去實現介面中的部分抽象方法,但要想實例化對象,這個抽象類還要有子類把它所有的抽象方法都實現才行;
在前面我們說過,PHP是單繼承的,一個類只能有一父類,但是一個類可以實現多個介面,就相當於一個類要遵守多個規范,就像我們不僅要遵守國家的法律,如果是在學校的話,還要遵守學校的校規一樣;
<?php
//使用implements實現多個介面
class Four implemtns 介面一, 介面二, ….
{
//必須把所有介面中的方法都要實現才可以實例化對象。
}
?>
PHP中不僅一個類可以實現多個介面,也可以在繼承一個類的同時實現多個介面, 一定要先繼承類再去實現介面;
<?php
//使用extends繼承一個類,使用implements實現多個介面
class Four extends 類名一 implemtns 介面一, 介面二, ….
{
//所有介面中的方法都要實現才可以實例化對象
………
}
?>
『伍』 php介面有什麼作用
首先應該明白介面是什麼含義,介面是對外開放的,調用介面然後重寫其中的方法,如果你不要使用介面裡面的方法,那麼介面就沒有意義了,這樣也是為了整體代碼的控制性。
本質上php介面其實就是一種規范,如果是多人開發的項目,這個介面可能就起到比較重要的作用了
『陸』 介面到底什麼啊介面到底怎麼寫PHP
說白話點,介面就是一個沒有視圖只有數據的控制器。通常返回字元串形式的json。
例如有個界面與有個介面需要獲取用戶名查詢出來的用戶數據為$info=['name'=>'張三'];
界面的處理你會輸出一個------姓名:{?php echo $info['name'] ?}
介面的格式則為 return json_encode ($info); 輸出一個 {"name":"張三"}
『柒』 php怎麼寫介面
介面是什麼?顧名思義就是交接獲取信息
比如一個簡單的介面.
訪問者提供:出生年月日. 介面返回星座
URL地址: XXXXXX/api?year=1999&month=8&day=8
而你只要在URL地址對應的控制器操作即可
比如:
functionapi(){
//獲取訪問者傳值.
$year=$_GET['year'];
$month=$_GET['year'];
$day=$_GET['year'];
//邏輯操作
省略................
//返回值
return$cons;//當然實際介面應該返回數組,裡麵包過狀態之類..
}
『捌』 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介面的例子
你就直接寫個類,然後寫方法,然後查詢對應的數據,返回JSON格式就行,當然這個類的方法能通過瀏覽器訪問,別人調用也是這樣來調用的