文档章节

php 的fixedArray

inuxor
 inuxor
发布于 2015/09/10 16:06
字数 360
阅读 31
收藏 0

标准库的SplFixedArray结构

SPL,php标准库。好多拍黄片的完全不知道有这个玩意,也玩的挺好。php数组+foreach就包打一切了。 行是行,就是显得太Low,逼格不高一直是php为人诟病的所在。 Array,数组。原教旨主义者看到php的array会吓尿,这TM什么玩意,双链?hash?怎么看也不是数组啊。数组嘛看上去就应该是用整数的index访问的一组格式一致的结构,要先声明长度才行。 其实这种东西php标准库里就有。

SplFixedArray  implements Iterator   , ArrayAccess   , Countable   {

/* 方法 */

public __construct  ([ int $size  = 0  ] )

public int count  ( void )

public mixed current  ( void )

public static SplFixedArray fromArray  ( array $array  [, bool $save_indexes  = true  ] )

public int getSize  ( void )

public int key  ( void )

public void next  ( void )

public bool offsetExists  ( int $index  )

public mixed offsetGet  ( int $index  )

public void offsetSet  ( int $index  , mixed  $newval  )

public void offsetUnset  ( int $index  )

public void rewind  ( void )

public int setSize  ( int $size  )

public array toArray  ( void )

public bool valid  ( void )

public void __wakeup  ( void )
}

:sweat_smile:一看这不就是一迭代器嘛。整那么高深。。。

玩法

写一个高逼格的99乘法表。。。。一层循环

<?php
$right = SplFixedArray :: fromArray(range(0, 9));
$left = SplFixedArray :: fromArray(range(1, 9));
for ($right->next();  ($right->valid() && $left->valid()) ; $right->next()) {
	echo $left->current() . '*' . $right->current() . ' = ' . $left->current() * $right->current() . ' ';
	if($right->current() == $left->current()){
		$left->next();
		$right->rewind();
		echo PHP_EOL;
	} 
}

© 著作权归作者所有

inuxor

inuxor

粉丝 33
博文 25
码字总数 14592
作品 0
技术主管
私信 提问
rsyslog参数说明

下文出现的配置指令中,请将 “<object>” 根据情况替换为 “MainMsg” 或 “Action”。 前者对应主消息队列,后者对应将要创建的动作对应的队列。 每定义一个动作都会相应的创建一个动作队列...

木头
2016/07/02
429
0
再谈js对象数据结构底层实现原理-object array map set

如果有java基础的同学,可以回顾下《再谈Java数据结构—分析底层实现与应用注意事项》:java把内存分两种:一种是栈内存,另一种是堆内存。基本类型(即int,short,long,byte,float,double,bo...

zhoulujun
05/17
149
0
KBEngine v0.9.16 发布,分布式游戏服务端引擎

分布式游戏服务端引擎 KBEngine v0.9.16 发布了。更新如下: 新增与改善: 调整安全关服时实体销毁为分批销毁。 添加API: KBEngine.kbassert,用于脚本中断底层,可以通过Core看堆栈信息。 ...

开源中国部长_柯标
2017/06/21
764
2
KBEngine v0.9.11 发布,分布式游戏服务端引擎

分布式游戏服务端引擎 KBEngine v0.9.11 发布了。更新如下: 新增与改善: 防止def中属性和方法重名。(#449) 对坐标系统进行优化 installer.py脚本linux安装完善(#451) entityID资源每次申请...

开源中国部长_柯标
2017/02/25
1K
6
Android 编译问题

最近想更改一下android的开机画面,所有需要编译android系统,但现在碰到这个错误: host C++: mksnapshot <= external/v8/src/accessors.cc host C++: mksnapshot <= external/v8/src/alloc......

lhp1331
2013/03/03
1K
1

没有更多内容

加载失败,请刷新页面

加载更多

数据安全管理:RSA算法,签名验签流程详解

本文源码:GitHub·点这里 || GitEE·点这里 一、RSA算法简介 1、加密解密 RSA加密是一种非对称加密,在公开密钥加密和电子商业中RSA被广泛使用。可以在不直接传递密钥的情况下,完成加解密操...

知了一笑
42分钟前
5
0
Podman 使用指南

> 原文链接:Podman 使用指南 Podman 原来是 CRI-O 项目的一部分,后来被分离成一个单独的项目叫 libpod。Podman 的使用体验和 Docker 类似,不同的是 Podman 没有 daemon。以前使用 Docker...

米开朗基杨
今天
6
0
拯救 项目经理个人时间的5个技巧

优秀的项目经理都有一个共同点,那就是良好的时间管理能力。专业的项目经理会确保他们的时间投入富有成效,尽可能避免时间浪费。 时间管理叫做GTD,即Getting Things Done——“把事情做完”...

Airship
今天
7
0
LNMP环境介绍,Mariadb安装,服务管理,mariadb安装3

LNMP环境介绍 Nginx 处理的请求有两种,分为 静态与动态 图片,js,css,视频,音频,flash 等都是静态请求,这些数据都不是保存在数据库里面的 动态请求一般来说,需要的数据是在数据库里面...

doomcat
今天
3
0
前端技术之:Prisma Demo服务部署过程记录

安装前提条件: 1、已经安装了docker运行环境 2、以下命令执行记录发生在MackBook环境 3、已经安装了PostgreSQL(我使用的是11版本) 4、Node开发运行环境可以正常工作 首先需要通过Node包管...

popgis
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部