PHP标准库 (SPL)——Countable用法示例
本文实例讲述了PHP标准库 (SPL)——Countable用法。分享给大家供大家参考,具体如下:
类实现 Countable 可被用于 count() 函数.
接口摘要
Countable { /* 方法 */ abstract public count ( void ) : int }
当一个类实现了Countable接口,实现了接口中的count方法,即可直接使用count(Object)
的到count方法返回的值。
例:
class MyCount { private $num; public function __construct($num) { $this->num = $num; } public function count() { return $this->num; } } $obj = new MyCount(10); echo count($obj);//返回1
上面的结果在意料之中,但是显然不是我们想要的结果,接下来实现Countable接口再试一次:
class MyCount implements \Countable { private $num; public function __construct($num) { $this->num = $num; } public function count() { return $this->num; } } $obj = new MyCount(10); echo count($obj);//返回10
实现Countable接口后,使用count()即可触发类中count方法,从而得到了返回的10。
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
相关推荐
-
PHP SPL标准库之数据结构堆(SplHeap)简单使用实例
堆(Heap)就是为了实现优先队列而设计的一种数据结构,它是通过构造二叉堆(二叉树的一种)实现.根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆.二叉堆还常用于排序(堆排序). 如下:最小堆(任意节点的优先级不小于它的子节点) 看看PHP SplHeap的实现: 显然它是一个抽象类,最大堆(SplMaxHeap)和最小堆(SplMinHeap)就是继承它实现的.最大堆和最小堆并没有额外的方法 SplHeap的简单使用如下: class MySimpleHeap extends
-
PHP标准库(PHP SPL)详解
什么是SPL? SPL,PHP 标准库(Standard PHP Library) ,此从 PHP 5.0 起内置的组件和接口,并且从 PHP5.3 已逐渐的成熟.SPL 其实在所有的 PHP5 开发环境中被内置,同时无需任何设置. 似乎众多的 PHP 开发人员基本没有使用它,甚至闻所未闻.究其原因,可以追述到它那阳春白雪般的说明文档,使你忽略了「它的存在」.SPL 这块宝石犹如铁达尼的「海洋之心」般,被沉入海底.而现在它应该被我们捞起,并将它穿戴在应有的位置 ,而这也是这篇文章所要表述的观点.
-
PHP SPL标准库之SplFixedArray使用实例
SplFixedArray主要是处理数组相关的主要功能,与普通php array不同的是,它是固定长度的,且以数字为键名的数组,优势就是比普通的数组处理更快. 看看我本机的Benchmark测试: ini_set('memory_limit','12800M'); for($size = 10000; $size < 10000000; $size *= 4) { echo PHP_EOL . "Testing size: $size" . PHP_EOL; for($s = m
-
PHP使用标准库spl实现的观察者模式示例
本文实例讲述了PHP使用标准库spl实现的观察者模式.分享给大家供大家参考,具体如下: 前面使用纯php实现了一个观察者模式(php观察者模式), 现在使用php标准库spl在次实现观察者模式,好处是:随意的生成您想使用的观察者! <?php /** * Created by PhpStorm. * User: evolution * Date: 14-12-27 * Time: 下午5:50 */ class Login implements SplSubject { private $sto
-
解析PHP SPL标准库的用法(遍历目录,查找固定条件的文件)
<?php class RecursiveFileFilterIterator extends FilterIterator { // 满足条件的扩展名 protected $ext = array('jpg','gif'); /** * 提供 $path 并生成对应的目录迭代器 */ public function __construct($path) { parent::__construct(new Recursiv
-
PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例
PHP SPL中提供了SplFileInfo和SplFileObject两个类来处理文件操作. SplFileInfo用来获取文件详细信息: 复制代码 代码如下: $file = new SplFileInfo('foo-bar.txt'); print_r(array( 'getATime' => $file->getATime(), //最后访问时间 'getBasename' => $file->getBasename(), //获取无路径的basenam
-
PHP SPL标准库之接口(Interface)详解
PHP SPL标准库总共有6个接口,如下: 1.Countable 2.OuterIterator 3.RecursiveIterator 4.SeekableIterator 5.SplObserver 6.SplSubject 其中OuterIterator.RecursiveIterator.SeekableIterator都是继承Iterator类的,下面会对每种接口作用和使用进行详细说明. Coutable接口: 实现Countable接口的对象可用于count()函数计数. 复制代码
-
PHP SPL标准库中的常用函数介绍
PHP SPL标准库中提供了一些函数用来处理如自动加载.迭代器处理等. spl_autoload_extensions()添加spl_autoload()可加载的文件扩展名 spl_autoload_register()注册函数到SPL __autoload函数栈中. 复制代码 代码如下: /*test1.php*/ <?php class Test1 { } /*test2.lib.php*/ <?php class Test2 { } /*test.php*/ <?php /
-
PHP SPL标准库之数据结构栈(SplStack)介绍
栈(Stack)是一种特殊的线性表,因为它只能在线性表的一端进行插入或删除元素(即进栈和出栈) SplStack就是继承双链表(SplDoublyLinkedList)实现栈. 类摘要如下: 简单使用如下: //把栈想象成一个颠倒的数组 $stack = new SplStack(); /** * 可见栈和双链表的区别就是IteratorMode改变了而已,栈的IteratorMode只能为: * (1)SplDoublyLinkedList::IT_MODE_LIFO | SplDoublyL
-
PHP标准库 (SPL)——Countable用法示例
本文实例讲述了PHP标准库 (SPL)--Countable用法.分享给大家供大家参考,具体如下: 类实现 Countable 可被用于 count() 函数. 接口摘要 Countable { /* 方法 */ abstract public count ( void ) : int } 当一个类实现了Countable接口,实现了接口中的count方法,即可直接使用count(Object)的到count方法返回的值. 例: class MyCount { private $num; pub
-
python 标准库原理与用法详解之os.path篇
os中的path 查看源码会看到,在os.py中有这样几行 if 'posix' in _names: name = 'posix' linesep = '\n' from posix import * #省略若干代码 elif 'nt' in _names: from nt import * try: from nt import _exit __all__.append('_exit') except ImportError: pass import ntpath as path #...
-
Go编程库Sync.Pool用法示例详解
目录 场景 用法 创建 GET & PUT 优化 Log 函数 性能测试 场景 go 如果频繁地创建.销毁对象(比如 http 服务的 json 对象,日志内容等),会对 GC 造成压力.比如下面的 Log 函数,在高并发情况下,需要频繁地创建和销毁 buffer. func Log(w io.Writer, key, val string) { b := new(bytes.Buffer) // 按一定的格式打印日志,这一段不是重点 b.WriteString(time.Now().UTC()
-
Python标准库defaultdict模块使用示例
Python标准库中collections对集合类型的数据结构进行了很多拓展操作,这些操作在我们使用集合的时候会带来很多的便利,多看看很有好处. defaultdict是其中一个方法,就是给字典value元素添加默认类型,之前看到过但是没注意怎么使用,今天特地瞅了瞅. 首先是各大文章介绍的第一个例子: 复制代码 代码如下: import collections as coll def default_factory(): return 'default value' d =
-
Python标准库中的logging用法示例详解
目录 1.logging的介绍 2.简单用法示例 3.日志级别 4.打印格式的各个参数 5.日志输出到指定文件 6.日志回滚(按照文件大小滚动) 7.日志回滚(按照时间滚动) 1.logging的介绍 logging是Python标准库中记录常用的记录日志库,通过logging模块存储各种格式的日志,主要用于输出运行日志,可以设置输出日志的等级.日志保存路径.日志文件回滚等. 2.简单用法示例 首先创建一个logger.py的文件,其里面的代码如下所示: import logging # 1.创
-
Python标准库shutil用法实例详解
本文实例讲述了Python标准库shutil用法.分享给大家供大家参考,具体如下: shutil模块提供了许多关于文件和文件集合的高级操作,特别提供了支持文件复制和删除的功能. 文件夹与文件操作 copyfileobj(fsrc, fdst, length=16*1024): 将fsrc文件内容复制至fdst文件,length为fsrc每次读取的长度,用做缓冲区大小 fsrc: 源文件 fdst: 复制至fdst文件 length: 缓冲区大小,即fsrc每次读取的长度 import shuti
-
python标准库模块之json库的基础用法
目录 前言 作用 loads,load的用法 dumps,dump的用法 结语 前言 json,全称为JavaScript Object Notation,也就是JavaScript对象标记,通过对象和数组的组合表示数据,虽然构造简洁但是结构化程度非常高,是一种轻量级的数据交换格式. 作用 主要用于将python对象编码为json格式输出或存储,以及将json格式对象解码为python对象. 一个 JSON 对象可以写为如下形式: [{ "name": "小明",
随机推荐
- IOS计步器功能实现之Healthkit和CMPedometer
- PostgreSQL中的XML操作函数代码
- Angular 4根据组件名称动态创建出组件的方法教程
- ASP.NET连接MySql数据库的2个方法及示例
- javascript实现简单的可随机变色网页计算器示例
- 微信小程序 input输入及动态设置按钮的实现
- php读取目录及子目录下所有文件名的方法
- Android应用内悬浮窗的实现方案示例
- js 火狐下取本地路径实现思路
- javascript实现控制div颜色
- 设为首页加入收藏兼容360/火狐/谷歌/IE等主流浏览器的代码
- jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
- 显示同一分组中的其他元素的sql语句
- linux(centos7)搭建SVN服务器的思路
- Android View刷新机制实例分析
- 如何利用Android Studio将moudle变成jar示例详解
- 桶排序算法的理解及C语言版代码示例
- C#判断一个String是否为数字类型
- Android 应用更换皮肤实现方法
- django之session与分页(实例讲解)