当前位置: 首页 > 工具软件 > Php-serial > 使用案例 >

PHP接口interface详解

齐成双
2023-12-01

PHP interface详解

首先提三个问题

  1. 为什么要用接口?
  2. 什么是接口?
  3. 接口怎么使用?

什么是接口

使用关键词 interface 定义,就像是定义一个标准的类一样,但其中定义所有的方法都是空的,且必须是 公有的(接口也可以定义常量,接口常量和普通类常量一样,但接口常量只能是公有的)。

为什么要用接口

多人开发时,有时会遇到规范问题,比如两个人在不同类中要实现同一个功能,这时,两个人可能会起不一样的方法名,而接口就等于是提供了一种标准,大家要实现这个功能,都用这个方法名。

有人会问,那用继承不是更简单吗,的确如此,但PHP只支持单继承,如果想使用多个类的功能就很尴尬了,这时就可以用到接口了。

注:使用接口是让你再去实现一遍这个功能,而不是真的像继承一样,直接拿来用了

接口使用

类需要使用接口时,要用关键词 implements ,且类中必须实现接口定义的所有方法,不然会报一个致命错误。

Example1:

//定义接口A
interface A 
{
	function func1();
}

//类User 调用接口A,必须实现接口内函数的功能
class User implements A
{
	function func1()
	{
		......
	}
}

类可以使用多个接口

Example2:

//定义接口A
interface A 
{
	function func1();
}

//定义接口B
interface B
{
	function func2();
}

//类User 调用接口A和B,必须实现接口内函数的功能
class User implements A,B
{
	function func1()
	{
		......
	}

	function func2()
	{
		......
	}
}

接口的继承

接口是可以继承的,且可以多继承

Example3:

//定义接口A
interface A 
{
	function func1();
}

//定义接口B
interface B extends A
{
	function func2();
}

//类User 调用接口B,必须实现接口A和B内函数的功能
class User implements B
{
	function func1()
	{
		......
	}

	function func2()
	{
		......
	}
}

多继承

Example4:

//定义接口A
interface A 
{
	function func1();
}

//定义接口B
interface B
{
	function func2();
}

//定义接口C
interface C extends A,B
{
	function func3();
}

//类User 调用接口C,必须实现接口A、B、C内函数的功能
class User implements C
{
	function func1()
	{
		......
	}

	function func2()
	{
		......
	}

	function func3()
	{
		......
	}
}
 类似资料: