php面向对象的接口,PHP面向对象之接口编程

这两天在看一些关于PHP接口方面的资料,总结如下:

一、接口的定义和作用:

1、定义:接口规定了那些实现它的类,是抽象类的实体,其方法必须被全部实现。

使用方法如下:

interface employee{

public function working();

}

class teacher implements employee{

public function working(){

echo 'teaching',PHP_EOL;

}

}

class coder implements employee{

public function working(){

echo 'coding',PHP_EOL;

}

}

function print_object(employee $i){

$i->working();

}

$a = new teacher();

$b = new coder();

print_object($a);

print_object($b);

?> 2、作用:接口起强制规范和契约的作用,不允许调用接口中本不存在的方法。接口的编写和实现可以分开。

二、PHP的接口

php是弱类型语言,强调灵活,不推荐大规模使用接口,因为PHP的接口失去了一些接口应该有的特性,比如PHP只关心是否实现了这个方法,而不关心语义是否正确。

三、一些特例:

Iterator迭代器接口,只要实现了这个接口,就可以使对象用于foreach结构,如DirectoryIterator类。

代码如下:

$dir = new DirectoryIterator(dirname(__FILE__));

foreach ($dir as $key => $value) {

if(!$value->isDir()){

echo $value->getFileName(),"\t",$value->getSize(),"
";

}

}     Trait可以被视为一种加强型的接口。代码如下:

trait Hello{

public function sayHello(){

echo "Hello ";

}

}

trait World{

public function sayWorld(){

echo "World";

}

}

class MyHelloWorld

{

use Hello,World;

public function sayExclamationMark(){

echo "!";

}

}

$myobject = new MyHelloWorld();

$myobject->sayHello();

$myobject->sayWorld();

$myobject->sayExclamationMark(); 四、总结

接口作为一种规范和契约存在,保证可用性和可控性。

接口是一个声明,使用了该接口就必须实现它。

PHP的接口存在两个不足,一是没有契约限制,二是缺少足够多的内部接口。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值