PHP foreach (...) вопрос - PullRequest
       12

PHP foreach (...) вопрос

1 голос
/ 15 февраля 2011

Мне было интересно, если использовать

foreach(get_some_array() as $boo) do_something...

медленнее, чем

$arr = get_some_array();
foreach($arr as $boo) do_something...

Я имею в виду, будет ли get_some_array () вызываться примерно 10000000 раз, если в массиве будет так много элементов (в 1-м примере)?

Ответы [ 2 ]

6 голосов
/ 15 февраля 2011

Нет, эта функция будет вызываться только 1 раз. Вы можете проверить это, выполнив:

<?php
function get()
{
    echo "getting\n";

    return array('a', 'b', 'c', 'd');
}

foreach (get() as $v) {
    echo $v . "\n";
}
?>

Вот это выводит:

murilo@mac:regionais$ php -f teste.php 
getting
a
b
c
d
1 голос
/ 15 февраля 2011

$ arr = get_some_array (); теоретически добавляет к этому уравнению нулевое время, так что оно не изменит то, что вы здесь используете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...