Если вы включите файл в PHP в цикле, он будет обращаться к файлу каждый раз, когда он будет работать в цикле?

Если у вас есть это

for ($ i = 0; $ i <10; $ i ++) include ('whatever.php');

Будет ли он вытаскивать файл десять фактических раз, или он будет только доступ к файлу один раз, и сохранить его содержимое и просто оценить его для других 9 раз?

Он будет включать файл десять раз.

Если это проблема, вы можете использовать include_once

Достаточно просто проверить – поместите спать () там, попросите файл сделать какой-то вывод, а во время одного из периодов сна измените файл, чтобы изменить его вывод.

whatever.php:

 <?php echo 'hello from version 1.0'; sleep(10); 

затем во время одного из снов измените его на «версия 2.0», используя другую оболочку. Если выход не изменится, тогда PHP загрузит файл ONCE и сохранит его в кэше – вы все равно получите 10 копий вывода / эффектов файла, но вы поймете, что PHP не ударил диск 10 раз.

Если вы спрашиваете, будет ли файл обналичен и включен в память вместо разбора и скомпилирован в байт-код PHP снова и снова: -Да, вы будете обрабатывать один и тот же файл n раз, если вы включите этот заданный файл n раз. Это стандартное поведение PHP, но …

Вы можете изменить это (и мне кажется, что вы это ищете?). Как я уже сказал, PHP будет включать файл в первый раз и не будет кэшировать его для вас … если вы не используете какой-либо PHP-кеширующий модуль, такой как APC:

При использовании APC все будет по-другому, полученный результат будет таким же, но поведение сервера сильно изменится! В первый раз, когда вы включаете файл, он будет разбираться, скомпилирован в байт-код PHP (машиночитаемые инструкции) и будет храниться в общей памяти. Позже, если этот файл не будет изменен, он НЕ будет обработан снова! PHP перейдет прямо к предварительно скомпилированной версии вашей программы и выполнит ее, сохранив много времени и ресурсов! Хорошо подходит для веб-приложений с высоким трафиком.

Подробнее о APC здесь