Performance comparison of foreach and while in PHP programming_PHP tutorial

WBOY
Release: 2016-07-21 14:55:52
Original
767 people have browsed it

foreach operates on a copy of the array (by copying the array), while while operates by moving the internal index of the array. According to general logic, while should be faster than

foreach (because foreach starts execution When the array is copied in first, while the internal pointer is moved directly), but the result is just the opposite.
In the loop, the array "reading" operation is performed, so foreach is faster than while:

Bangke Home: http://www.bkjia.com/

foreach ($array as $value) {
echo $value;
}

while (list($key) = each($array)) {
echo $array[$key ];
}

The array "writing" operation is performed in the loop, so while is faster than foreach:

foreach ($array as $key => $value) {
echo $array[$key] = $value . '...';
}

while (list($key) = each($array)) {
$array [$key] = $array[$key] . '...';
}
Summary: It is generally believed that foreach involves value copying and will be slower than while, but in fact, if it is just When reading an array in a loop, foreach is very fast. This is because the copy mechanism used by PHP is "reference counting, copy-on-write", that is to say, even if a variable is copied in PHP , the initial form is actually actually

is still in the form of a reference. Only when the content of the variable changes, the real copy will occur. The reason for doing this is to save memory consumption. It also improves the efficiency of

copying. From this point of view, the efficient read operation of foreach is not difficult to understand. In addition, since foreach is not suitable for processing array write operations, we can draw a conclusion

. In most cases, array write operations are performed in the form of foreach ($array as $key => $value). All codes should be replaced with while (list($key) =

each($array)). The speed difference produced by these techniques may not be obvious in small projects, but in large projects like frameworks, a single request will often involve hundreds of thousands of array loop operations. The difference is will be significantly enlarged.



http://www.bkjia.com/PHPjc/364334.html

www.bkjia.com

http: //www.bkjia.com/PHPjc/364334.htmlTechArticleforeach operates on a copy of the array (by copying the array), while while operates by moving the internal index of the array, Under general logic, while should be faster than foreach (because for...
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template