SplFixedArray example of PHPSPL standard library, splsplfixedarray_PHP tutorial

Source: Internet
Author: User
SplFixedArray of the PHPSPL standard library uses instances and splsplfixedarray. SplFixedArray of the PHPSPL standard library uses instances. splsplfixedarraySplFixedArray is mainly used to process array-related functions. Unlike common phparray, SplFixedArray is fixed length, the SplFixedArray of the php spl standard library is used as an example, and the splsplfixedarray

SplFixedArray is mainly used to process array-related functions. Unlike common php arrays, SplFixedArray is an array with fixed length and key names, the advantage is faster processing than normal arrays.

Check my local Benchmark test:

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 result is as follows:

Testing size: 10000Array(): 0.004000186920166SplArray(): 0.0019998550415039 Testing size: 40000Array(): 0.017001152038574SplArray(): 0.0090007781982422 Testing size: 160000Array(): 0.050002098083496SplArray(): 0.046003103256226 Testing size: 640000Array(): 0.19701099395752SplArray(): 0.16700983047485 Testing size: 2560000Array(): 0.75704312324524SplArray(): 0.67303895950317

In general, SplFixedArray is 20% ~ faster than php array ~ 30%, so if you are dealing with a large number of fixed-length arrays, it is strongly recommended to use.
The summary of the SplFixedArray class is as follows:

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 )}

Use SplFixedArray:

$ Arr = new SplFixedArray (4); $ arr [0] = 'php'; $ arr [1] = 1; $ arr [3] = 'Python '; // traversal, $ arr [2] is nullforeach ($ arr as $ v) {echo $ v. PHP_EOL;} // Obtain the array length echo $ arr-> getSize (); // 4 // increase the array length $ arr-> setSize (5 ); $ arr [4] = 'new one'; // catch exceptions try {echo $ arr [10];} catch (RuntimeException $ e) {echo $ e-> getMessage ();}

Http://www.bkjia.com/PHPjc/998567.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/998567.htmlTechArticlePHP SPL standard library of SplFixedArray use instance, splsplsplfixedarray SplFixedArray is mainly processing array-related main function, and ordinary php array is different, it is fixed length, and...

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.