`
hanyh
  • 浏览: 235422 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

php的interface

    博客分类:
  • php
阅读更多

interface Storage {
	public static function get_temp_dir();
	//	public function storage();

}
class FileUtils implements Storage {
	public static function get_temp_dir() {
		$version = phpversion();
		$versionArr = explode(".",$version);

		if ($versionArr[0] >= 5 &&
		$versionArr[1] >= 2 &&
		$versionArr[2] >= 1) {
			return sys_get_temp_dir();
		}
		else {
			$tmpfile = tempnam("dumps,s1ef2aah.xdsadflajsdf","");
			$path = dirname($tmpfile);
			@unlink($tmpfile);
			return $path;
		}
	}

}

class F {
	
}
function testInterface1(Storage $s) { // F1
	print $s->get_temp_dir();
}
function testInterface2($s) { //F2
	print $s->get_temp_dir();
}


$s1 = &new FileUtils(); //ok
testInterface($s1);
testInterface2($s1); //ok

$s = &new F();  
testInterface($s);  //wrong

一直认为PHP用不用interface都没什么关系,因为是动态类型的,如上面的函数F2,不用确定类型,系统照样运行得很好
但是加上参数的类型如F1,就在运行前检查,能够提前暴露错误!
个人认为动态语言的Interface就是为了引入一点"类型安全"
分享到:
评论

相关推荐

    领悟php接口中interface存在的意义

    在PHP编程语言中,接口(Interface)是一种非常重要的概念,它的存在主要服务于对象的多态性和规范性。本文将深入探讨PHP接口interface的意义,并通过示例进行解释。 首先,理解接口的意义,我们需要知道什么是多态...

    PHP中关键字interface和implements详解

    在PHP编程语言中,接口(interface)是一种设计模式,它允许类实现一组预定义的方法,即使这些类之间没有继承关系。接口提供了多继承的机制,弥补了PHP中类单继承的局限性。关键字 `interface` 用于声明一个接口,而...

    PHP接口类(interface)的定义、特点和应用示例

    在PHP编程语言中,接口(interface)是一种特殊类型的类,它并不包含任何方法的实现,而是定义了一系列必须被实现的方法签名。接口的主要目的是为了解决类的多态性问题,尤其是在PHP这种仅支持单继承的语言中,接口...

    PHP_面向对象教程(强力推荐)

    ### PHP面向对象教程知识点详解 #### 1. 面向对象的概念 面向对象编程(Object-Oriented Programming, OOP)是一种编程范式,它将计算机程序视为一系列对象的集合,每个对象都能接收信息、处理数据并向其他对象...

    php5面向对象

    interface Animal { public function makeSound(); } class Dog implements Animal { public function makeSound() { return 'Woof!'; } } class Cat implements Animal { public function makeSound() { ...

    MumPI - Mumble PHP Interface:PHP中的Mumble VoIP服务器的管理Web界面-开源

    MumPI,全称为Mumble PHP Interface,是一个用于管理Mumble VoIP服务器的开源Web界面。Mumble本身是一款低延迟、高音质的语音聊天工具,尤其受到在线游戏社区的欢迎,因为它提供了清晰的语音通信体验,且具有良好的...

    PHP接口精讲视频

    接口(Interface)是PHP编程中的一个重要概念,它定义了一组方法的签名,但不包含具体的实现。通过接口,我们可以实现类与类之间的松耦合,提高代码的可扩展性和复用性。本"PHP接口精讲视频"深入浅出地讲解了这一...

    Object-Oriented Programming with PHP5 使用PHP5进行面向对象编程(英文版)

    此外,PHP5还引入了接口(Interface)和抽象类(Abstract Class),它们进一步增强了OOP的能力。接口定义了一组必须被实现的方法,而抽象类可以包含未实现的方法,强制子类去实现。 ```php interface MyInterface {...

    PHP5面向对象开发教程第一章-PHP5面向对象基础

    在PHP的世界里,面向对象编程(Object-Oriented Programming,OOP)是一种强大的设计和实现方法,它使得代码更加结构化、可维护性更强。PHP5引入了完整的面向对象支持,显著增强了其作为Web开发语言的能力。本教程将...

    (第23讲) PHP面向对象开发的学习(七)

    在本节课程 "(第23讲) PHP面向对象开发的学习(七)" 中,我们将深入探讨PHP中的面向对象编程(OOP)概念,特别是接口(Interface)的使用。这一部分对于理解和实现高效的PHP代码至关重要。 首先,我们来了解**接口...

    php面向对象初步入门教程pdf版

    PHP通过接口(Interface)和抽象类(Abstract Class)实现多态。接口定义一组必须被实现的方法,而抽象类可以包含未定义的方法。 ```php interface MyInterface { function doSomething(); } abstract class ...

    PHP面向对象 课程

    4. **接口(Interface)**:接口定义一组必须被实现的方法,强制类遵循某种规范。 ```php interface Flyable { public function fly(); } class Bird implements Flyable { public function fly() { echo '...

    php新特性之“接口”

    在PHP的世界里,接口(Interface)是一种非常重要的概念,它为类定义了一组必须实现的方法。接口在软件设计中扮演着规范和契约的角色,确保不同的类可以协同工作,即使它们来自不同的命名空间或由不同开发者编写。在...

    php5面向对象教程【技术文档】

    在PHP的世界里,面向对象编程(Object-Oriented Programming,简称OOP)是一种重要的编程范式,它在PHP5及更高版本中得到了显著加强。PHP5面向对象的特性为开发者提供了更加灵活和强大的代码组织方式,有助于提升...

    PHP5 OOP思维导图

    - **接口**:使用`interface`关键字定义,它只包含方法声明,不包含实现。一个类可以实现多个接口,确保遵循接口定义的契约。 ```php interface MyInterface { public function doSomething(); } ``` **6. 构造...

    php5类学习 类使用方式

    在PHP5中,类是面向对象编程的基础,它允许我们定义自定义的数据类型,封装数据和功能,使得代码更加模块化、易于维护。本篇将深入讲解PHP5中的类使用方式,结合实例来帮助理解。 1. **类的定义** PHP5中,通过`...

    php5 类与对象

    PHP 类的接口 `interface` 与 `implements` 关键字 接口是一组抽象方法的集合。类可以通过实现接口来确保实现了接口中的所有方法。 ```php interface Speakable { public function speak(); } class Dog ...

    装饰者模式 - PHP版

    interface Component { public function operation(); } ``` 2. **具体组件**:实现了组件接口的类,它是被装饰的对象。在PHP示例中,这可能是一个名为`ConcreteComponent`的类,实现了`Component`接口。 ```php ...

    php语法之php常用类

    在PHP编程语言中,类是面向对象编程的基础,它封装了数据和操作这些数据的方法,使得代码更加结构化和可重用。本篇文章将详细探讨PHP中的常用类及其实例代码,帮助你更好地理解和运用这些核心概念。 1. **类的定义...

Global site tag (gtag.js) - Google Analytics