首页 > 编程语言 >PHP中接口interface的作用

PHP中接口interface的作用

时间:2023-09-13 11:33:05浏览次数:34  
标签:定义 实现 接口 interface PHP 方法

对象接口

使用接口(interface),可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容。由于接口(interface)和类(class)、trait 共享了命名空间,所以它们不能重名。

接口就像定义一个标准的类一样,通过 interface 关键字替换掉 class 关键字来定义,但其中所有的方法都是空的。

接口中定义的所有方法都必须是 public ,这是接口的特性。

在实践中,往往出于两个辅助目的使用接口:
•因为实现了同一个接口,所以开发者创建的对象虽然源自不同的类,但可能可以交换使用。常用于多个数据库的服务访问、多个支付网关、不同的缓存策略等。可能不需要任何代码修改,就能切换不同的实现方式。
•能够让函数与方法接受一个符合接口的参数,而不需要关心对象如何做、如何实现。这些接口常常命名成类似 Iterable、Cacheable、Renderable,以便于体现出功能的含义。

接口可以定义魔术方法,以便要求类(class)实现这些方法。

 

实现(implements)

要实现一个接口,使用 implements 操作符。类中必须实现接口中定义的所有方法,否则会报一个致命错误。类可以实现多个接口,用逗号来分隔多个接口的名称。

Warning 类实现(implement)两个接口时,如果它们定义了相同名称的方法,只有签名相同的时候才是允许的。

Warning 实现接口的时候,class 中的参数名称不必和接口完全一致。然而, PHP 8.0 起语法开始支持命名参数,也就是说调用方会依赖接口中参数的名称。因此,强烈建议开发者的参数的命名,在类和接口中保持一致。

Note: 接口也可以通过 extends 操作符扩展。
Note: 类实现接口时,必须以兼容的签名定义接口中所有方法。
常量 接口中也可以定义常量。接口常量和类常量的使用完全相同, 在 PHP 8.1.0 之前不能被子类或子接口所覆盖。

标签:定义,实现,接口,interface,PHP,方法
From: https://www.cnblogs.com/haoxuanchen2014/p/17699150.html

相关文章

  • java consumer接口
    参考:https://blog.csdn.net/weixin_44230693/article/details/113847162consuemrvoidaccept(Tt):对给定的参数执行此操作。defaultConsumerandThen(Consumerafter):返回一个组合的Consumer,依次执行操作,然后执行after操作。Consumer接口也称为消费型接口,它消费的数据的数据......
  • java supplier接口
    参考:https://blog.csdn.net/m0_61366135/article/details/130557475函数式接口概述有且仅有一个抽象方法的接口Java中的函数式编程体现就是Lambda表达式所以函数式接口即可以适用于Lambda使用的接口supplierJava中的Supplier接口是一个函数式接口,它不需要任何参数输入......
  • 【PHP】读取本地文件夹中所有图片并显示
    <?//获取文件夹下的所有文件$dir_str='';$imgType=array('gif','png','jpg','jpeg','bmp');$handle=opendir("./".$dir_str);//指定目录while(false!==($file=readdir($handle))){//遍历改文件所......
  • 利用Api接口实现手机网络连接断开的监听
    在今天的移动互联网时代,手机已经成为了人们不可或缺的重要工具,而手机的联网状态也是我们经常需要关注的一个问题。我们需要保证手机网络处于正常的连接状态,但是有时候,由于种种原因,手机的网络可能会断开,这时我们需要及时发现,并进行相应的处理措施。而利用Api接口实现手机网络连接断......
  • WebAPI接口文档快速编写
    近期项目使用了WebAPI,需要先给出接口文档,本着能省事就省事的原则,自然最好是能找到自动生成文档的方式。一、使用Apifox,官网写着这是个API一体化协作平台,说白了,对于我来说,这就是个测试工具+文档生成器。单纯用于测试的话是可以直接在线操作,但如果想导出文档的话,还是需要下......
  • 视频监控/安防监控/AI视频分析/边缘计算EasyCVR如何调取登录接口获取token?
    安防视频监控管理平台/视频汇聚/视频云存储平台EasyCVR能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,实现视频资源的鉴权管理、按需调阅、全网分发、云存储、AI智能分析等,视频监控智能分析平台EasyCVR融合性强、开放度高、部署轻快,在智慧工地、智慧园区、......
  • php扩展Guzzle 封装post请求
    https://guzzle-cn.readthedocs.io/zh_CN/latest/Guzzle是一个PHP的HTTP客户端,用来轻而易举地发送请求,并集成到我们的WEB服务上。测试用的windows环境安装composerrequireguzzlehttp/guzzle:~6.0使用useGuzzleHttp\Client;$client=newClient();$url="http://www.xxx.com"......
  • API接口技术文档
    API接口技术文档[项目名称]API接口技术文档[版本号]1.0.0[作者][你的姓名][更新日期][当前日期和时间][概述]本文档旨在介绍项目中的API接口及其相关信息,包括接口功能、使用方法、请求与响应格式等。API接口列表1.1接口名称1描述:接口功能的简要描述。请求URL:指定接口的访问路......
  • 淘宝api:本地图片上传至淘宝 获取url(联合拍立淘接口)
    upload_img-上传图片到淘宝请求参数请求参数:imgcode=https://img14.360buyimg.com/n0/jfs/t1/52280/38/7464/140698/5d511f6bE08290bd7/f0bb32ddb47451e8.jpg参数说明:imgcode:base64加密后的图片内容(post方式),或者是直接上传(file方式)响应参数名称类型必须示例值描述......
  • 接口未通时,模拟接口返回数据
    调用接口未接通时,可以用Promise.resolve()或者Promise.reject()模拟成功和失败的返回eg:正常写法exportfunctiongetData(){returnrequest({method:'get',url:'xxx'})}模拟成功exportfunctiongetData(){returnresolve({cod......