PHP SPL Standard library Splfixedarray usage examples
This article mainly introduces the PHP SPL standard library Splfixedarray Use instance, Splfixedarray mainly deal with the main function of the array related, it is fixed-length, faster than ordinary array processing, the need for friends can refer to the next
Splfixedarray is mainly dealing with the main function of the array, unlike the normal PHP array, it is fixed-length, and the number is the key name of the array, the advantage is faster than ordinary array processing.
Check out my benchmark test for this machine:
?
1 2 3 4 5 6 7 8 9 10 |
Ini_set (' Memory_limit ', ' 12800M '); 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; } |
The results are as follows:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Testing size:10000 Array (): 0.004000186920166 Splarray (): 0.0019998550415039 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 |
Normally splfixedarray is 20%~30% than PHP array, so it is strongly recommended if you are dealing with a large number of fixed-length arrays.
The Splfixedarray class is summarized as follows:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Splfixedarray implements Iterator, Arrayaccess, countable { /* Method */ 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) } |
Using Splfixedarray:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21st 22 23 |
$arr = new Splfixedarray (4); $arr [0] = ' php '; $arr [1] = 1; $arr [3] = ' python '; Traversal, $arr [2] is null foreach ($arr as $v) { Echo $v. Php_eol; } Get array length echo $arr->getsize (); 4 Increase array length $arr->setsize (5); $arr [4] = ' New one '; Catching exceptions try{ echo $arr [10]; } catch (RuntimeException $e) { echo $e->getmessage (); } |
http://www.bkjia.com/PHPjc/1000112.html www.bkjia.com true http://www.bkjia.com/PHPjc/1000112.html techarticle PHP SPL Standard library Splfixedarray Use example this article mainly introduced the PHP SPL standard library Splfixedarray Use instance, Splfixedarray mainly handles the array related main function, it is the solid ...