接口interface是一个规定,给人继承用的东西,有点像抽象类.
接口定义了实现某种服务的一般规范,声明了所需的函数和常量,但不指定如何实现.之所以不给出实现的细节,是因为不同的实体可能需要用不同的方式来实现公共的方法定义.关键是要建立必须实现的一组一般原则,只有满足了这些原则才能说实现了这个接口.
扩展资料
PHP接口(interface)的特点 :
①.、接口的方法必须是公开的.
PHP 接口
接口
使用接口(interface),你可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容.
我们可以通过interface来定义一个接口,就像定义一个标准的类一样,但其中定义所有的方法都是空的.
接口中定义的所有方法都必须是public,这是接口的特性.
实现
要实现一个接口,可以使用implements操作符.类中必须实现接口中定义的所有方法,否则 会报一个fatal错误.如果要实现多个接口,可以用逗号来分隔多个接口的名称.
Note:
实现多个接口时,接口中的方法不能有重名.
接口也可以继承,通过使用extends操作符.
常量
接口中也可以定义常量.接口常量和类常量的使用完全相同. 它们都是定值,不能被子类或子接口修改.
范例
Example #1 接口代码示例
php
// 声明一个'iTemplate'接口
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;
// 下面的写法是错误的,会报错:
// Fatal error: Class BadTemplate contains 1 abstract methods
// and must therefore be declared abstract (iTemplate::getHtml)
class BadTemplate implements iTemplate
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)
// 错误写法会导致一个fatal error
class d implements b
public function baz(Foo $foo)
interface b
public function bar();
interface c extends a, b
public function baz();
class d implements c
public function bar()
public function baz()
const b = 'Interface constant';
// 输出接口常量
echo a::b;
// 错误写法,因为常量的值不能被修改.接口常量的概念和类常量是一样的.
class b implements a
const b = 'Class constant';
你也可以看看instanceof关键字的文档.
①制定规范
开发前一定要定好一个规范,比如要定好数据返回的通用参数和格式.关于数据格式,用的比较多的有xml和json,我建议用json,因为json比xml的好处更多.
接口数据因符合需要什么返回什么的原则,比如要查询某个用户的余额和注册时间,网页里面的做法可能是select * from user where uid=1,但是接口一定要select balance,regtime from user where uid=1.因为接口返回数据是要有开销的,要流量的,能少返回数据就尽量少返回,这样可以大大的提高性能.
一定要写好接口文档,并按照模块写,而且还要书写规范,最好的格式是:
接口请求地址;请求参数(包括参数名、类型、是否必填);测试参数举例;返回参数(参数名,并注明每个参数的含义).
这样哪怕以后项目很大,以不会照成维护困难的问题.
要验证保证代码正确无误,而且生成环境中要屏蔽掉错误,避免头部有额外的输出,照成返回的json等数据解析失败而导致app闪退等.
app不像网页,app一旦发布,有人使用之后,接口就不要乱修改了.以后升级也是,修改要在保证接口原有结构之上进行额外的扩展,否则会导致调用旧版接口的app出现bug.
安全高于一切,必须要保证接口的安全.电话号码等敏感信息在传输的过程中一定要加密,否则可能会被别人抓包到.拿取用户信息的接口一定要验证权限,以防止接口被恶意调用,泄密用户信息,甚至篡改信息.
首先应该明白接口是什么含义,接口是对外开放的,调用接口然后重写其中的方法,如果你不要使用接口里面的方法,那么接口就没有意义了,这样也是为了整体代码的控制性.
本质上php接口其实就是一种规范,如果是多人开发的项目,这个接口可能就起到比较重要的作用了
以上就是土嘎嘎小编为大家整理的对php接口的思考相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!