文档章节

PHP面向对象之接口编程

wddqing
 wddqing
发布于 2013/05/06 11:10
字数 415
阅读 96
收藏 2

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

一、接口的定义和作用:

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

<?php 
	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(),"<br>";
    }
}
    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的接口存在两个不足,一是没有契约限制,二是缺少足够多的内部接口。

© 著作权归作者所有

wddqing
粉丝 10
博文 25
码字总数 10891
作品 0
广州
程序员
私信 提问
【原】PHP从入门到精通2小时【图文并茂】

原创内容,转载请注明。 主要内容: 搭建PHP开发环境 第一个helloworld程序 变量 全局变量 循环结构 函数 数组 面向对象编程 继承 接口 多态 日志 文件的读写 时间格式和时区 创建图形 从远程...

乌云上
2018/09/16
0
0
PHP核心技术与最佳实践 读书笔记 第一章面向对象思想的核心概念

第一章 面向对象思想的核心概念 面向对象程序设计是一种程序设计范型,同时也是一种程序开发方法。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性,灵活性和可扩展性...

lilugirl
2013/06/08
270
0
PHP 学习必备技能(基础略过)

1.面向对象编程 面向对象编程基本概念 类和对象的关系 如何定义类 成员属性(变量) 如何创建对象实例及如何访问对象属性 对象在内存中存在的形式 栈、堆、全局区、常量区和代码区的关系 成员方...

风雪中的舞者
2015/08/05
99
0
PHP面向对象编程基本原则

首先祝大家节日快乐!!! 额,不知道你们剁手没,小梦是没有!整整已经错过了第九个年头! 小伙伴是不是有一种感觉,PHP入门的时候简直爱不释手,总是把 ”PHP是世界上最好的语言“ 挂在嘴边...

思梦教育
2017/11/12
0
0
PHP 中的 MVC 模式

我不是一个PHP粉,但我喜欢把PHP变成面向对象的语言。要让PHP完全OOL化,还要做许多事情,也有很多开发企业级应用程序使用了PHP的支持。通过接口和类对象的使用,让PHP开发人员开发可重复使用...

迷途d书童
2012/09/21
5.7K
3

没有更多内容

加载失败,请刷新页面

加载更多

springboot2.0 maven打包分离lib,resources

springboot将工程打包成jar包后,会出现获取classpath下的文件出现测试环境正常而生产环境文件找不到的问题,这是因为 1、在调试过程中,文件是真实存在于磁盘的某个目录。此时通过获取文件路...

陈俊凯
今天
6
0
BootStrap

一、BootStrap 简洁、直观、强悍的前端开发框架,让web开发更加迅速、简单 中文镜像网站:http://www.bootcss.com 用于开发响应式布局、移动设备优先的WEB项目 1、使用boot 创建文件夹,在文...

wytao1995
今天
10
0
小知识:讲述Linux命令别名与资源文件的区别

别名 别名是命令的快捷方式。为那些需要经常执行,但需要很长时间输入的长命令创建快捷方式很有用。语法是: alias ppp='ping www.baidu.com' 它们并不总是用来缩短长命令。重要的是,你将它...

老孟的Linux私房菜
今天
8
0
《JAVA核心知识》学习笔记(6. Spring 原理)-5

它是一个全面的、企业应用开发一站式的解决方案,贯穿表现层、业务层、持久层。但是 Spring 仍然可以和其他的框架无缝整合。 6.1.1. Spring 特点 6.1.1.1. 轻量级 6.1.1.2. 控制反转 6.1.1....

Shingfi
今天
8
0
Excel导入数据库数据+Excel导入网页数据【实时追踪】

1.Excel导入数据库数据:数据选项卡------>导入数据 2.Excel导入网页数据【实时追踪】:

东方墨天
今天
11
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部