五分钟带你看PHP中的接口interface声明与应用(实例详解)

在之前的文章中给大家带来了《PHP中怎样完成Session的设置、获取和删除?》,其中详细的介绍了再PHP中应该怎样完成Session的设置、获取和删除,本篇文章我们来看一下PHP中的interface接口的相关知识,希望对大家有帮助!

在之前的文章中给大家带来了《PHP中怎样完成Session的设置、获取和删除?》,其中详细的介绍了再PHP中应该怎样完成Session的设置、获取和删除,本篇文章我们来看一下PHP中的interface接口的相关知识,希望对大家有帮助!

五分钟带你看PHP中的接口interface声明与应用(实例详解)

php入门到就业线上直播课:进入学习API 文档、设计、调试、自动化测试一体化协作工具:点击使用

在我们之前的学习中,了解了PHP的继承,但是PHP只支持单继承,也就是说每个类只能继承一个父类。继承的特性简化了对象、类的创建,增加了代码的重用性。为了解决PHP只支持单继承的的问题,PHP引入了接口。接口可以理解为一种特殊的抽象类,可以看做一个特殊的类,那接下来我们就一起来看一下PHP接口的相关知识吧。

接口的声明

接口既然是一种特殊的类,那就有它的声明方法,称为接口技术。我们在之前的学习中知道,正常类的声明是使用“class”关键字来进行声明的,接口既然特殊那就不会用正常的声明方法,要通过“interface”关键字来实现接口的声明。

声明接口interface 关键字的语法格式如下:

interface 接口名称{
// 常量成员
// 抽象方法
}登录后复制

其中需要注意的是:

  • 接口中所有的方法都是抽象方法,并且在方法前不需要使用abstract关键字进行修饰。因为默认权限是public公有的,所以在接口中不需要使用public访问权限来进行修饰。

  • 接口中只能使用const关键字生命为常量类型的成员属性,在接口中不能声明变量。

  • 接口不能实例化为对象,接口可以直接使用接口名称在接口外面获取常量成员的值。

接下来通过示例来看一下,示例如下:

登录后复制

输出结果:

五分钟带你看PHP中的接口interface声明与应用(实例详解)

由此我们便通过interface 关键字完成了接口的声明。

接口的应用

接口是不能进行实例化操作的,所以想要使用接口中的成员的话,就需要借助子类。我们通过implements关键字可以实现接口的继承,要是有多个接口继承的话,每个接口之间要使用,隔开。

在通过implements关键字继承接口的同时,还可以使用extends关键字来继承一个类。可以理解为,可以在继承一个类的同时实现多个接口,需要注意的是,一定要先使用extends继承类再去使用implements实现多个接口。它的语法格式如下:

class 类名 extends 父类名 implements 接口一, 接口二, …, 接口 n {
// 实现所有接口中的抽象方法
}登录后复制

我们通过示例来看一下接口的应用,示例如下:

fun1();
$obj -> fun2();
?>登录后复制

输出结果:

五分钟带你看PHP中的接口interface声明与应用(实例详解)

其中运行后需要注意的是:既然要通过子类继承了接口中的方法,那么接口中的所有方法都必须在子类中实现,否则 PHP 将出现错误信息。

不仅有上述实例的应用,我们还可以使用 extends 关键字让一个接口去继承另一个接口,实现接口之间的扩展。在下面的示例中先定义一个接口 One,然后再定义一个接口 Two 来继承 One:

示例如下:

interface One{
function fun1();
function fun2();
}
interface Two extends One{
function fun3();
function fun4();
}登录后复制

还有就是如果需要使用抽象类去实现接口中的部分方法,也需要使用 implements 关键字。

示例如下:

interface Demo{
function fun1();
function fun2();
}
abstract class Website implements Demo{
public function fun2(){
… … ;
}
abstract function fun3();
}登录后复制

举了这么多例子,接口的具体作用是什么,我们可以将接口看做是一个类的模板或者类的规定,在多人开发的时候,每个人根据需要来实现一部分接口,都遵循这个类的规定。这时候PHP接口就起作用了。

大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。

php中的interface是什么意思

原创2020-04-25 10:28:203221 + php学习QQ群(点击入群)

五分钟带你看PHP中的接口interface声明与应用(实例详解)

php入门到就业线上直播课:进入学习API 文档、设计、调试、自动化测试一体化协作工具:点击使用

interface是指接口,使用接口(interface)你可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容。

我们可以通过interface来定义一个接口,就像定义一个标准的类一样,但其中定义所有的方法都是空的。

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

实现

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

注意:

1、实现多个接口时,接口中的方法不能有重名。

2、接口也可以继承,通过使用extends操作符。

常量

接口中也可以定义常量。接口常量和类常量的使用完全相同。 它们都是定值,不能被子类或子接口修改。

接口代码示例

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;
}
}
?>登录后复制

更多相关教程请访问钦钦技术栈。

以上就是php中的interface是什么意思的详细内容,更多请关注钦钦技术栈其它相关文章!

转载至:php中文网【www.php.cn】

版权声明:本文(即:原文链接:https://www.qin1qin.com/catagory/27305/)内容由互联网用户自发投稿贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 630367839@qq.com 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年 9月 29日 5:12:32
下一篇 2022年 9月 30日 3:11:07

软件定制开发公司

相关阅读

发表回复

登录后才能评论
通知:禁止投稿所有关于虚拟货币,币圈类相关文章,发现立即永久封锁账户ID!