<?php /** * 演示代码:php新特性之“接口” */ namespace test; interface Documentable { public function getId(); public function getContent(); } class StreamDocument implements Documentable { protected $resource; protected $buffer; public function __construct($resource, $buffer = 4096) { $this->resource = $resource; $this->buffer = $buffer; } public function getId() { return 'resource-' . (int)$this->resource; } public function getContent() { $streamContent = ''; rewind($this->resource); while (feof($this->resource) === false) { $streamContent .= fread($this->resource, $this->buffer); } return $streamContent; } } class HtmlDocument implements Documentable { protected $url; public function __construct($url) { $this->url = $url; } public function getId() { return $this->url; } public function getContent() { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $this->url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_MAXREDIRS, 3); $html = curl_exec($ch); curl_close($ch); return $html; } } class DocumentStore { protected $data = []; public function addDocument(Documentable $document) { $key = $document->getId(); $value = $document->getContent(); $this->data[$key] = $value; } public function getDocuments() { return $this->data; } } function test() { $document_store = new \test\DocumentStore(); $resource = @fopen('test.txt', 'r'); if (false === $resource) { exit('no suche file: test.txt'); } $stream_document = new \test\StreamDocument($resource); $document_store->addDocument($stream_document); $url = 'http://www.baidu.com'; $html_document = new \test\HtmlDocument($url); $document_store->addDocument($html_document); $data = $document_store->getDocuments(); var_dump($data); } test();
相关推荐
PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)共5页.pdf.zip
本项目完全开源,是PHP版调用OpenAI的API接口进行问答的Demo,有以下特性和功能: 对PHP版本无要求,不需要数据库。核心代码只有几个文件,没用任何框架,修改调试很方便。 采用stream流模式通信,一边生成一边输出...
PHP 的学习新特性 最近做的项目使用了 php7,但感觉有很多新特性没有用起来。就想总结一下,一些可能会用到的新特性。之前使用的环境是 php5.4,所有也会有 php5.5 和 php5.6 的特性总结进来,这里只列出我觉得在...
书中首先从OOP 采用的机制—— 抽象类、接口、契约式编程开始讲起,然后介绍了静态方法、单例模式、工厂模式和PHP 6 的新特性等内容,接着介绍了测试和文档方面的内容,还介绍了标准PHP 库SPL 方面的知识以及PHP ...
php-shellcommand, 在PHP中,一个简单的面向对象的接口来执行 shell 命令 php ShellCommand php ShellCommand提供了一个简单的面向对象接口来执行 shell 命令。特性捕获 stdOut,stdErr 和 exitCode句柄参数转义将...
书中首先从oop采用的机制——抽象类、接口、契约式编程开始讲起,然后介绍了静态方法、单例模式、工厂模式和php 6的新特性等内容,接着介绍了测试和文档方面的内容,还介绍了标准php库spl方面的知识以及php开发人员...
本文实例讲述了PHP5.5新特性之yield理解与用法。分享给大家供大家参考,具体如下: yield生成器是php5.5之后出现的,yield提供了一种更容易的方法来实现简单的迭代对象,相比较定义类实现 Iterator 接口的方式,性能...
接口中定义的所有方法都必须是公有,这是接口的特性。 实现(implements) 要实现一个接口,使用 implements 操作符。类中必须实现接口中定义的所有方法,否则会报一个致命错误。类可以实现多个接口,用逗号来分隔多...
PDO在php5.1发行时开始附带,php之前的版本不支持用于支付的抽象的PHP库特性:(1)灵活性,可以在php运行期间,直接加载新的数据库而不需要在新的数据库使用时,重新设置和编译。(2)面向对象性:通过对象来控制...
PHP 5首席设计师Andi Gutmans,PEAR创始人Stig Saether Bakken,PHP核心贡献者Derick Rethans三大高手合力而作:本书几乎囊括了PHP 5所有的新特性,包括PHP 5所有的新功能,PHP 5的面向对象编程方法和设计模式,以及...
追信API兼容追信所有平台的客户端软件,自主根据用户手机或桌面操作系统的特性选择合适的输出方式。支持TXT、XML、JSON的输出格式。 追信魔盒二次开发插件的开发者,无需关注手机平台的特殊性,根据格式输出API所需...
1.熟练掌握PHP对象的创建 2.熟练掌握PHP构造函数 与析构造函数 3. 熟练掌握PHP中封装、继承多态特性 4. 接口的使用
在 PHP 5 中只能是类名、接口、array 或者 callable (PHP 5.4,即可以是函数,包括匿名函数),现在也可以使用 string、int、float和 bool 了。 官方示例: ? 1 2 3 4 5 6 7 <?php // Coercive mode ...
特性 提供进程池 自动处理僵尸进程回收,支持无阻塞调用 提供共享内存、System V 消息队列、Semaphore锁,方便IPC通信(进程通信) 提供Process和Runnable两种...
现在来说php7的重大特性肯定已经是定型了,不会再有什么变动了。后续一些版本的迭代主要也就是修修bug,优化之类的。下面就来说话我们一直期待的php7.0新特征吧。 1.标量参数类型声明 现在支持字符串(string)、整型...
PHP智慧酒店管理系统其主要特性包括: 入住管理 预订管理 语音提示、语音播报 房态实时图表数据 预警提示 微信api接口 短信营销 会员管理 酒店的商品管理 报表中心 财务管理 设备管理。智能门锁、读卡器、身份证识别...
书中首先从OOP 采用的机制—— 抽象类、接口、契约式编程开始讲起,然后介绍了静态方法、单例模式、工厂模式和PHP 6 的新特性等内容,接着介绍了测试和文档方面的内容,还介绍了标准PHP 库SPL 方面的知识以及PHP ...
首先介绍了PHP的OO特性,包括类声明、对象实例化、继承、方法与属性封装以及静态方法与属性、抽象类、接口、异常处理、对象克隆等高级主题。然后介绍了设计模式,阐述了模式的概念,展示了如何在PHP中实现几个关键的...
百度地图JavaScript API是一套由JavaScript语言编写的应用程序接口,可帮助您在网站中构建功能丰富、交互性强的地图应用,支持PC端和移动端基于浏览器的地图应用开发,且支持HTML5特性的地图开发。