PHP对象接口是什么,如何实现?
Admin 2022-10-10 群英技术资讯 588 次浏览
接口是通过 interface 关键字来定义的,就像定义一个标准的类一样,但其中定义所有的方法都是空的。
接口中定义的所有方法都必须是公有,这是接口的特性。
要实现一个接口,使用 implements 操作符。类中必须实现接口中定义的所有方法,否则会报一个致命错误。类可以实现多个接口,用逗号来分隔多个接口的名称。
Note:
实现多个接口时,接口中的方法不能有重名。
Note:
接口也可以继承,通过使用 extends 操作符。
Note:
类要实现接口,必须使用和接口中所定义的方法完全一致的方式。否则会导致致命错误。
接口中也可以定义常量。接口常量和类常量的使用完全相同,但是不能被子类或子接口所覆盖。
Example #1 接口示例
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; } } //下面的写法是错误的,会报错,因为没有实现getHtml() class BadTemplate implements ITemplate { private $vars = array(); public function setVariable($name,$var) { $this->vars[$name] = $var; } }
Example #2 可扩充的接口
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){} } //错误写法 class d implements b { public function foo(){} public function baz(Foo $foo){} }
Example #3 继承多个接口
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 使用接口常量
interface a { const b = 1; } //输出接口常量 echo a::b; //错误写法 class b implements a { const b = 1; }
接口加上类型约束,提供了一种很好的方式来确保某个对象包含有某些方法。参见 instanceof 操作符和类型约束。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
在php项目中,分页是非常常见的,那么php分页功能该如何实现呢?本文将为大家带来的就是php分页功能的3种实现方法,对分页不太熟的同学们有福利了哦
php中n阶乘的实现方法:1、普通递归实现,根据递归的通用公式fact(n) = n * fact(n-1)很容易写出阶乘的计算代码。2、普通循环实现,有些动态规划的味道,但由于中间态变量使用频率低,不需要额外存储空间。
phpstorm编辑器字体出现乱码的解决办法及步骤是:1、进入phpstorm编辑器设置选项;2、进入文件编码选项;3、将UTF-8改成GBK编码即可。
本篇文章给大家带来了关于Laravel请求声明周期的相关知识,请求生命周期有不同的术语,如自动加载器、内核、服务提供器、调度请求和路由等,希望对大家有帮助。
获取GET数据的方法使用PHP的内置变量$_GET。GET方法传输的数据都在URL中,比如"www.register.com:/up.php?name=frogjie&age=24"中的name和age参数。GET传输的数据是urlencode之后的。当请求到达php这边时,php会自动urldecode,并把这些参数以key=>value的方式保存到$_GET数组中。但是G
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008