PHP接口

什么是接口?接口就是给出一些没有实现的方法,封装到一起,到某个类要使用的时候,再根据具体情况把这些方法写出来。

接口是更加抽象的抽象类,抽象类里的方法可以有方法体,而接口里的所有方法都没有方法体。接口体现了程序设计的多态和高内聚低偶拿来设计思想。

1、接口的基本语法

interface 接口名(

//属性

//方法

}

例:

<?php  //使用程序模拟现实生活中的USB接口  //接口一般用于定义规范(方法/属性)  interface iUsb{    public function start();    public function stop();  }  //编写手机类,让它去实现接口  //当一个类实现了某个接口,则要求该类必须实现这个接口的所有方法  class Camera implements iUsb{    public function start(){      echo "相机开始工作"."<br />";    }    public function stop(){      echo "相机停止工作"."<br />";    }  }  //编写手机类  class Phone implements iUsb{    public function start(){      echo "手机开始工作"."<br />";    }    public function stop(){      echo "手机停止工作"."<br />";    }  }  //如何使用  $camera=new Camera();  $camera->start();  $camera->stop();  $phone1=new Phone();  $phone1->start();  $phone1->stop();?>

2、接口的方法都不能有方法体。

3、如何使用接口?格式如下:

class 类名 implements 接口名1,接口名2,...{

}

4、接口的作用,声明一系方法,待其它的类来实现这些方法。

什么情况下使用接口?

1 定规范

2 定下规范,让别的程序员来实现

3 多个类之间没有继承关系,是平级的,这些类都会去实现某个功能,只是实现的方式不一样。

使用接口的注意事项

1)不能去实例化一个接口。

2)接口中的所有方法,都不能有方法体;

3)一个类可以有多个接口,用逗号隔开。例如:

public class 类名 implements 接口1,接口2...{

}

4)接口中可以有属性,但必须是常量,默认是public

例:

<?php  interface iUsb{     const A=90; //定义常量,前面不能加$符号
  }  echo "ok".iUsb::A; //取出接口中常量A的值?>

5)接口中的方法,默认都是public的

6)一个接口不能继承其它的类,但是可以继承别的接口

<?php  interface iUsb2{  }  interface iUsb3{  }  interface iUsb extends iUsb2,iUsb3{     const A=90; //定义常量,前面不能加$符号  }  echo "ok".iUsb::A; //取出常量A的值?>

一个接口可继承多个接口,当一个类实现了某些接口,则必须把所有接口中的方法都实现

例2:

<?php  interface iUsb2{    public function a();  }  interface iUsb3{    public function b();  }  interface iUsb extends iUsb2,iUsb3{ //接口iUsb继承了iUsb2和iUsb3两个接口     const A=90; //定义常量,前面不能加$符号  }  //类Class1必须把三个接口中的方法全部实现,否则会报错  class Class1 implements iUsb{      public function a(){      }      public function b(){      }      public function test(){      }  }  echo "ok".iUsb::A; //取出常量A的值?>

实现接口与继承类的比较

1)php的继承是单继承,也就是一个类最多只能有一个父类。这种机制,对于类功能的扩展有一定的影响

2)实现接口可以看作是对继承的一种补充。

3)实现接口,可在不打破继承关系的前提下,对某个类功能进行扩展。

URL: http://www.bianceng.cn/webkf/PHP/201612/50488.htm

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索接口
, kfcapi接口
, 方法
, 抽象
, 类名
, 多个
, 一个
, php接口
封装法
php接口开发教程、php接口开发、接口、php接口调用、php,以便于您获取更多的相关知识。

时间: 2024-10-31 16:35:34

PHP接口的相关文章

网吧路由器接口故障的处理方法

  路由器有几个接口,每一个接口对应属性. 当网吧路由器接口出现故障时,需要及时排查解决.在讲述路由器接口故障的处理方法前,小编先简单介绍下路由器CE1接口.路由器CE1接口是将2M,一个E1用作若干个64k及其组合,这就是CE1.CE1的传输线路的带宽是2048k. 假设网吧路由器A和其他厂商的设备B通过CE1链路相连,带宽为2M,配置完成后,发现在B上有大量数据包溢出告警,在A上,当CE1接口上没有流量时,报文传输时延正常,当CE1接口上有流量时,时延达到300多秒,网速较慢. 下面是具体的

一个类如何实现两个接口中同名同参数不同返回值的函数

假设有如下两个接口: public interface IA{    string GetA(string a);}public interface IB{    int GetA(string a);} 他们都要求实现方法GetA,而且传入的参数都是一样的String类型,只是返回值一个是String一个是Int,现在我们要声明一个类X,这个类要同时实现这两个接口: public class X:IA,IB 由于接口中要求的方法的方法名和参数是一样的,所以不可能通过重载的方式来解决,那么我们该

请问下有谁调用过银联代付的接口

问题描述 请问下有谁调用过银联代付的接口 有前辈在吗,我可以贴代码,访问接口,返回值表示参数错误,我可以贴代码 解决方案 如果用java的话,可以参考以下链接的几个文件看看 http://www.chendw.cn/original/205.html 解决方案二: 贴出来吧哥们. 我也想知道

java当中的接口里面的方法全是抽象的而且是public的

问题描述 java当中的接口里面的方法全是抽象的而且是public的 java当中的接口里面的方法全是抽象的而且是public的,为什么没有abstract和public关键词修饰呢 解决方案 接口中不允许private.protected,只能是public,所以语法规定不用写了.同理,接口不能包含函数实现,肯定是abstract的.所以也不用写了. 解决方案二: 14. JAVA 枚举(Enum.类集EnumMap&EnumSet .实现接口.定义抽象方法) ----- 学习笔记

android 如何通过接口向服务器上传视频

问题描述 android 如何通过接口向服务器上传视频 在搞一个小项目 需要用到 新手 没接触过 希望会的朋友提供一个Demo 谢谢! 解决方案 你就找一个上传文件的例子就行了,不管你是视频还是图片,都一样的方式 解决方案二: http://www.cnblogs.com/top5/archive/2013/03/07/2947344.html

数据-android 地铁查询怎么查,接口在哪里找呢

问题描述 android 地铁查询怎么查,接口在哪里找呢 比如查询广州地铁,貌似不提供接口啊,数据或功能都是从哪里来了,我现在在做这方面,接口都没有.. 解决方案 你还是选择跟人家谈谈合作吧,这类接口,不是你随便能得到的 解决方案二: 当然不排除自己做数据库,自己把所有线路采集到你们自己的数据库,自己查 解决方案三: 自己采集数据去啊 .差距不大的. 解决方案四: 可以去聚合数据和易源API看看 解决方案五: 上百度api store查查,应该会有

PostgreSQL 11 preview - compress method 接口 - 暨开放接口系列

标签 PostgreSQL , 开放接口 , udf , type , index , scan , language , fdw , sample , aggregate , operator , window , storage , compress 背景 PostgreSQL是一款扩展能力极强的数据库,这也是PG可以深入各个垂直行业的原因. PostgreSQL的开放式接口 已有非常多跟进自定义接口扩展出来的插件. 下面是自定义接口对应的文档. 1.自定义函数 https://www.po

spring+ibatis的dao接口 能使用内部类吗?

问题描述 spring+ibatis的dao接口 能使用内部类吗? spring+ibatis的dao接口 能使用内部类吗? spring扫描xml加载的 要怎么配置? 现在加载不到namespace指定的内部类 public interface MissionTypeMatterMapper { int deleteByPrimaryKey(Integer mission_matter_id); void insert(MissionTypeMatter record); List<Missi

xml-携程api接口请求成功返回的String数据怎样拿来使用

问题描述 携程api接口请求成功返回的String数据怎样拿来使用 携程官网提供的java方法,配置好后,请求成功,返回的是xml形式的一串String类型的字符串,怎么才能拿来使用? 解决方案 用xml解析库,或者反序列化成对象后就可以用了. 解决方案二: 用xml解析库,或者反序列化成对象后就可以用了. 解决方案三: google java xml解析.http://bbs.csdn.net/topics/290027113 http://developer.51cto.com/art/20

网银-网站引入各大银行支付接口

问题描述 网站引入各大银行支付接口 公司网站要加入支付功能,之前没做过,不了解流程,是否去开户行办理什么的,做的朋友给讲解一下,详细点最好谢谢 解决方案 只需要引入支付宝或者财付通就好了,不要尝试去和银行对接,没必要