定长数组(SplFixedArray)

PHP官方的SPL库提供了一个定长数组的数据结构,类似与C语言中的数组。和普通的PHP数组不同,定长数组读写性能更好。

官方测试数据

测试使用PHP 5.4,64位Linux系统

  1. * small data (1,000):
  2. * write: SplFixedArray is 15 % faster
  3. * read: SplFixedArray is 5 % faster
  4. * larger data (512,000):
  5. * write: SplFixedArray is 33 % faster
  6. * read: SplFixedArray is 10 % faster

使用方法

SplFixedArray使用方法与Array相同,但只支持数字索引的访问方式。

  1. $array = new SplFixedArray(5);
  2. $array[1] = 2;
  3. $array[4] = "foo";
  4. var_dump($array[0]); // NULL
  5. var_dump($array[1]); // int(2)

可以使用setSize()方法动态改变定长数组的尺寸。