加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP SPL标准库之SplFixedArray使用实例

发布时间:2020-12-12 20:52:40 所属栏目:PHP教程 来源:网络整理
导读:SplFixedArray主要是处理数组相关的主要功能,与普通php array不同的是,它是固定长度的,且以数字为键名的数组,优势就是比普通的数组处理更快。 看看我本机的Benchmark测试: for($size = 10000; $size 10000000; $size *= 4) { echo PHP_EOL . "Testing s

SplFixedArray主要是处理数组相关的主要功能,与普通php array不同的是,它是固定长度的,且以数字为键名的数组,优势就是比普通的数组处理更快。

看看我本机的Benchmark测试:

for($size = 10000; $size < 10000000; $size *= 4) {
echo PHP_EOL . "Testing size: $size" . PHP_EOL;
for($s = microtime(true),$container = Array(),$i = 0; $i < $size; $i++) $container[$i] = NULL;
echo "Array(): " . (microtime(true) - $s) . PHP_EOL;

for($s = microtime(true),$container = new SplFixedArray($size),$i = 0; $i < $size; $i++) $container[$i] = NULL;
echo "SplArray(): " . (microtime(true) - $s) . PHP_EOL;
}

结果如下:

Testing size: 40000
Array(): 0.017001152038574
SplArray(): 0.0090007781982422

Testing size: 160000
Array(): 0.050002098083496
SplArray(): 0.046003103256226

Testing size: 640000
Array(): 0.19701099395752
SplArray(): 0.16700983047485

Testing size: 2560000
Array(): 0.75704312324524
SplArray(): 0.67303895950317

通常情况下SplFixedArray要比php array快上20%~30%,所以如果你是处理巨大数量的固定长度数组,还是强烈建议使用。 SplFixedArray类摘要如下:

使用SplFixedArray:

//遍历, $arr[2] 为null
foreach($arr as $v) {
echo $v . PHP_EOL;
}

//获取数组长度
echo $arr->getSize(); //4

//增加数组长度
$arr->setSize(5);
$arr[4] = 'new one';

//捕获异常
try{
echo $arr[10];
} catch (RuntimeException $e) {
echo $e->getMessage();
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读