加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

如何描述 PHP 的接口以及对其进行实现的函数

发布时间:2023-10-28 11:13:07 所属栏目:PHP教程 来源:
导读:关于“PHP怎样定义接口,实现接口的方法是什么”的知识有一些人不是很理解,对此小编给大家总结了相关内容,具有一定的参考借鉴价值,而且易于学习与理解,希望能对大家有所帮助,有这个方面学习需要的朋友

关于“PHP怎样定义接口,实现接口的方法是什么”的知识有一些人不是很理解,对此小编给大家总结了相关内容,具有一定的参考借鉴价值,而且易于学习与理解,希望能对大家有所帮助,有这个方面学习需要的朋友就继续往下看吧。

定义接口

使用interface关键字声明一个接口,如果某个类要实现这个接口,可以使用implements关键字,语法格式如下:

interface 接口名称 //接口名一般要大写,要养成良好的编程习惯

{

成员函数列表

}

class 类名 implements 接口名称 //一个类可以实现多个接口,implements关键字后面可以写多个接口名,并用逗号分开

{

成员函数列表 //类中的成员函数和接口中的成员函数相对应,接口中的成员函数要在类中成员函数实现

}

我们来定义一个接口。

例:imple.php

<?php

interface Interf{ //创建一个名为Interf的接口

function do_something(); //成员函数 do_something()

}

class Cls implements Interf{ //Cls的类来实现Interf接口

function do _something(){ //成员函数 do_something()

echo ‘do…’; //打印do…

}

}

?>

注:接口名不能用interface

类名不能用class

2.实现接口的方法

例:implements.php

<?php

interface Fruit{//定义一个接口Fruit

function grow(); //创建一个成员函数grow 这里不需要实现,所以函数后面直接以分号结束。由于接口的函数是必须公开的,所以这里不需要在使用public、 private 和 protected 修饰。

}

class Apple implements Fruit{ //用Apple类来实现Fruit接口

public function __construct(){ //公有 构造函数

echo ‘This is apple.<br><br>’; //打印This is apple.

}

public function grow(){ //公有 成员函数grow 接口中grow的具体实现

echo ‘Apple grown mothed.<br><br>’; //打印Apple grown mothed.

}

}

class Banana implements Fruit{//用Banana类来实现Fruit接口

public function __construct(){//公有 构造函数

echo ‘This is banana .<br><br>’;//打印This is banana.

}

public function grow(){//公有 成员函数grow 接口中grow的具体实现

echo ‘Banana grown mothed.<br><br>’;//打印Banana grown mothed.

}

}

class Orange implements Fruit{//用Orange类来实现Fruit接口

public function __construct(){//公有 构造函数

echo ‘This is orange.<br><br>’;//打印This is orange.

}

public function grow(){//公有 成员函数grow 接口中grow的具体实现

echo ‘Orange grown mothed.<br><br>’;//打印Orange grown mothed.

}

}

//$fruit = new Fruit(); //接口不能 实例化 ,会报错

$apple = new Apple();//实例化

$banana = new Banana();//实例化

$orange = new Orange();//实例化

$apple->grow();//调用apple的grow函数

$banana->grow();//调用banana的grow函数

$orange->grow();//调用orange的grow函数

?>

结果:

接口可以和类一样具有继承能力,接口可以继承多个接口,但是接口不能继承类。

例:implements2.php

<?php

interface Gain{//定义一个接口Gain (吸收养分)

function suck();//创建一个成员函数suck (吸收方法)

}

interface Fruit extends Gain{ //Fruit接口使用extends继承Gain接口

function grow();//创建一个成员函数grow

}

class Apple implements Fruit{//用Apple类来实现Fruit接口

public function __construct(){//公有 构造函数

echo ‘This is apple.<br><br>’;//打印This is apple.

}

public function grow(){//公有 成员函数grow 接口中grow的具体实现

echo ‘Apple grown mothed.<br><br>’;//打印Apple grown mothed.

}

public function suck(){//公有 成员函数suck 接口中suck的具体实现

echo ‘Apple suck…<br><br>’;//打印Apple suck…

}

}

class Banana implements Fruit{//用Banana类来实现Fruit接口

public function __construct(){//公有 构造函数

echo ‘This is banana.<br><br>’;//打印This is banana.

}

public function grow(){//公有 成员函数grow 接口中grow的具体实现

echo ‘Banana grown mothed.<br><br>’;//打印Banana grown mothed.

}

public function suck(){//公有 成员函数suck 接口中suck的具体实现

echo ‘Banana suck…<br><br>’;//打印Banana suck…

}

}

class Orange implements Fruit{//用Banana类来实现Fruit接口

public function __construct(){//公有 构造函数

echo ‘This is orange.<br><br>’;//打印This is orange.

}

public function grow(){//公有 成员函数grow 接口中grow的具体实现

echo ‘Orange grown mothed.<br><br>’;//打印Orange grown mothed.

}

public function suck(){//公有 成员函数suck 接口中suck的具体实现

echo ‘Orange suck…<br><br>’;//打印Orange suck…

}

}

//$fruit = new Fruit();//接口不能实例化,会报错

$apple = new Apple();//实例化

$banana = new Banana();//实例化

$orange = new Orange();//实例化

$apple->grow();//调用apple的grow函数

$banana->grow();//调用banana的grow函数

$orange->grow();//调用orange的grow函数

$apple->suck();//调用apple的suck函数

$banana->suck();//调用banana的suck函数

$orange->suck();//调用orange的suck函数

?>

“PHP怎样定义接口,实现接口的方法是什么”的内容就介绍到这里了,感谢大家的阅读。

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章