Необходимо сохранить результат взрыва () перед циклом foreach? - PullRequest
0 голосов
/ 26 октября 2018

Нужно ли хранить результат explode(), если все, для чего он будет использоваться, это цикл?

$lines = explode(PHP_EOL, $data);
foreach ($lines as $line) {
    // do stuff
}

Есть ли причина не вызывать его напрямую в цикле? Будет ли explode() вызываться один раз или для каждой итерации?

foreach (explode(PHP_EOL, $data) as $line) {
    // do stuff
}

1 Ответ

0 голосов
/ 26 октября 2018

explode() будет вызываться только один раз в цикле foreach. Если у вас очень большой код, у вас будет два варианта:

1. Оптимизация / Скорость:

Каждая переменная содержит несколько байтов памяти, поэтому, если у вас большое веб-приложение, я рекомендую вызывать explode() внутри foreach, но если ваше приложение не такое большое, я не думаю, что это повредитвыделить несколько байтов.

2. Код уборщика:

Второй вариант, это чистый код, если вы назначите explode переменной, это будет полезно для последующего использования, иэто также облегчит отладку.

Я бы также рекомендовал эту статью для получения дополнительной информации.

...