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` 用于声明一个接口,而...
在PHP编程语言中,接口(interface)是一种特殊类型的类,它并不包含任何方法的实现,而是定义了一系列必须被实现的方法签名。接口的主要目的是为了解决类的多态性问题,尤其是在PHP这种仅支持单继承的语言中,接口...
### PHP面向对象教程知识点详解 #### 1. 面向对象的概念 面向对象编程(Object-Oriented Programming, OOP)是一种编程范式,它将计算机程序视为一系列对象的集合,每个对象都能接收信息、处理数据并向其他对象...
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,是一个用于管理Mumble VoIP服务器的开源Web界面。Mumble本身是一款低延迟、高音质的语音聊天工具,尤其受到在线游戏社区的欢迎,因为它提供了清晰的语音通信体验,且具有良好的...
接口(Interface)是PHP编程中的一个重要概念,它定义了一组方法的签名,但不包含具体的实现。通过接口,我们可以实现类与类之间的松耦合,提高代码的可扩展性和复用性。本"PHP接口精讲视频"深入浅出地讲解了这一...
此外,PHP5还引入了接口(Interface)和抽象类(Abstract Class),它们进一步增强了OOP的能力。接口定义了一组必须被实现的方法,而抽象类可以包含未实现的方法,强制子类去实现。 ```php interface MyInterface {...
在PHP的世界里,面向对象编程(Object-Oriented Programming,OOP)是一种强大的设计和实现方法,它使得代码更加结构化、可维护性更强。PHP5引入了完整的面向对象支持,显著增强了其作为Web开发语言的能力。本教程将...
在本节课程 "(第23讲) PHP面向对象开发的学习(七)" 中,我们将深入探讨PHP中的面向对象编程(OOP)概念,特别是接口(Interface)的使用。这一部分对于理解和实现高效的PHP代码至关重要。 首先,我们来了解**接口...
PHP通过接口(Interface)和抽象类(Abstract Class)实现多态。接口定义一组必须被实现的方法,而抽象类可以包含未定义的方法。 ```php interface MyInterface { function doSomething(); } abstract class ...
4. **接口(Interface)**:接口定义一组必须被实现的方法,强制类遵循某种规范。 ```php interface Flyable { public function fly(); } class Bird implements Flyable { public function fly() { echo '...
在PHP的世界里,接口(Interface)是一种非常重要的概念,它为类定义了一组必须实现的方法。接口在软件设计中扮演着规范和契约的角色,确保不同的类可以协同工作,即使它们来自不同的命名空间或由不同开发者编写。在...
在PHP的世界里,面向对象编程(Object-Oriented Programming,简称OOP)是一种重要的编程范式,它在PHP5及更高版本中得到了显著加强。PHP5面向对象的特性为开发者提供了更加灵活和强大的代码组织方式,有助于提升...
- **接口**:使用`interface`关键字定义,它只包含方法声明,不包含实现。一个类可以实现多个接口,确保遵循接口定义的契约。 ```php interface MyInterface { public function doSomething(); } ``` **6. 构造...
在PHP5中,类是面向对象编程的基础,它允许我们定义自定义的数据类型,封装数据和功能,使得代码更加模块化、易于维护。本篇将深入讲解PHP5中的类使用方式,结合实例来帮助理解。 1. **类的定义** PHP5中,通过`...
PHP 类的接口 `interface` 与 `implements` 关键字 接口是一组抽象方法的集合。类可以通过实现接口来确保实现了接口中的所有方法。 ```php interface Speakable { public function speak(); } class Dog ...
interface Component { public function operation(); } ``` 2. **具体组件**:实现了组件接口的类,它是被装饰的对象。在PHP示例中,这可能是一个名为`ConcreteComponent`的类,实现了`Component`接口。 ```php ...
在PHP编程语言中,类是面向对象编程的基础,它封装了数据和操作这些数据的方法,使得代码更加结构化和可重用。本篇文章将详细探讨PHP中的常用类及其实例代码,帮助你更好地理解和运用这些核心概念。 1. **类的定义...