接口是什么?顧名思義就是交接獲取信息
創(chuàng)新互聯(lián)主營兩當網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,app軟件開發(fā),兩當h5重慶小程序開發(fā)搭建,兩當網(wǎng)站營銷推廣歡迎兩當?shù)鹊貐^(qū)企業(yè)咨詢
比如一個簡單的接口.
訪問者提供:出生年月日. 接口返回星座
URL地址: XXXXXX/api?year=1999month=8day=8
而你只要在URL地址對應的控制器操作即可
比如:
function?api(){
//獲取訪問者傳值.
$year?=?$_GET['year'];
$month?=?$_GET['year'];
$day?=?$_GET['year'];
//邏輯操作
省略................
//返回值
return?$cons;//當然實際接口應該返回數(shù)組,里面包過狀態(tài)之類..
}
可以用curl獲取借樓的信息。
所謂接口,就是提供一個url,只要你滿足它要求的參數(shù),就能得到你要的數(shù)據(jù)。比如你拿到一個接口,帶上所需的參數(shù),復制到地址欄同樣能得到。不過最好用程序得到。file_get_contents也可以用,不過有局限性。所以我建議用curl。給你一個函數(shù),挺好用的。
function request($url,$https=true,$method='GET',$data=null){
$ch = curl_init();//初始化,得到資源
curl_setopt($ch, CURLOPT_URL,$url); //請求數(shù)據(jù)的路徑
curl_setopt($ch, CURLOPT_HEADER,false);//是否輸出頭
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //不直接輸出結(jié)果
//curl_setopt ($ch, CURLOPT_SAFE_UPLOAD, 0);//兼容php之后的版本
if($https){
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); //是否驗證主機
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); //是否進行證書驗證
}
if($method=='POST'){
curl_setopt($ch, CURLOPT_POST, true); //POST傳輸
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); //傳輸數(shù)據(jù)
}
$content_json = curl_exec($ch);
if ($content_json === false) {
return "網(wǎng)絡請求出錯: " . curl_error($ch);
}
curl_close($ch);
return $content_json;
}
PHP 接口
接口
使用接口(interface),你可以指定某個類必須實現(xiàn)哪些方法,但不需要定義這些方法的具體內(nèi)容。
我們可以通過interface來定義一個接口,就像定義一個標準的類一樣,但其中定義所有的方法都是空的。
接口中定義的所有方法都必須是public,這是接口的特性。
實現(xiàn)
要實現(xiàn)一個接口,可以使用implements操作符。類中必須實現(xiàn)接口中定義的所有方法,否則 會報一個fatal錯誤。如果要實現(xiàn)多個接口,可以用逗號來分隔多個接口的名稱。
Note:
實現(xiàn)多個接口時,接口中的方法不能有重名。
Note:
接口也可以繼承,通過使用extends操作符。
常量
接口中也可以定義常量。接口常量和類常量的使用完全相同。 它們都是定值,不能被子類或子接口修改。
范例
Example #1 接口代碼示例
?php
// 聲明一個'iTemplate'接口
interface iTemplate
{
public function setVariable($name, $var);
public function getHtml($template);
}
// 實現(xiàn)接口
// 下面的寫法是正確的
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關(guān)鍵字的文檔。
首先你要寫一個接口文檔,定義數(shù)據(jù)結(jié)構(gòu)
然后開始封裝寫類
class a{
public function(){
$a = $_GET['a'];
echo '這里面寫業(yè)務邏輯';
echo '輸出結(jié)果366u';
}
}