HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-21
1 <p>Вначале разберемся, зачем это надо. Писать весь код в одном скрипте невозможно, непрактично и попросту странно: он разрастется до гигантских размеров и станет неудобным. Придется тратить много времени на его доработку и изменение.</p>
1 <p>Вначале разберемся, зачем это надо. Писать весь код в одном скрипте невозможно, непрактично и попросту странно: он разрастется до гигантских размеров и станет неудобным. Придется тратить много времени на его доработку и изменение.</p>
2 <p><a>PHP</a>дает возможность дополнять программу новыми скриптами, фактически внешними кусками кода. Мы можем разложить все модули программы в разные папки, структурировать их и применять по необходимости.</p>
2 <p><a>PHP</a>дает возможность дополнять программу новыми скриптами, фактически внешними кусками кода. Мы можем разложить все модули программы в разные папки, структурировать их и применять по необходимости.</p>
3 <p>Рекомендуем использовать файлы с расширением .php. Во время выполнения php-скрипта происходит следующее:</p>
3 <p>Рекомендуем использовать файлы с расширением .php. Во время выполнения php-скрипта происходит следующее:</p>
4 <ol><li>В начале указанного файла прекращается парсинг в режиме PHP-кода.</li>
4 <ol><li>В начале указанного файла прекращается парсинг в режиме PHP-кода.</li>
5 <li>Он переключается в режим HTML.</li>
5 <li>Он переключается в режим HTML.</li>
6 <li>И продолжается снова в PHP, когда скрипт закончит работу.</li>
6 <li>И продолжается снова в PHP, когда скрипт закончит работу.</li>
7 </ol><p>Поэтому код внутри сценария, который нужно выполнить как PHP, мы оборачиваем корректными тегами начала и конца PHP-кода.</p>
7 </ol><p>Поэтому код внутри сценария, который нужно выполнить как PHP, мы оборачиваем корректными тегами начала и конца PHP-кода.</p>
8 <p>Чужое расширение у новых файлов - это еще и угроза безопасности. Присваивайте им любые нравящиеся имена, но всегда пишите .php. В противном случае мошенники могут запросить ваш файл, и сервер вернет его код.</p>
8 <p>Чужое расширение у новых файлов - это еще и угроза безопасности. Присваивайте им любые нравящиеся имена, но всегда пишите .php. В противном случае мошенники могут запросить ваш файл, и сервер вернет его код.</p>
9 <p>Присоединить его можно четырьмя способами:</p>
9 <p>Присоединить его можно четырьмя способами:</p>
10 <ol><li>include;</li>
10 <ol><li>include;</li>
11 <li>require;</li>
11 <li>require;</li>
12 <li>include_once;</li>
12 <li>include_once;</li>
13 <li>require_once.</li>
13 <li>require_once.</li>
14 </ol><p>Все это - особые языковые конструкции PHP для расширения его частей. Расскажем подробнее о каждой: какова разница между ними и в каких условиях использовать.</p>
14 </ol><p>Все это - особые языковые конструкции PHP для расширения его частей. Расскажем подробнее о каждой: какова разница между ними и в каких условиях использовать.</p>
15 <p>Если файл, который присоединили с помощью этой конструкции, по какой-либо причине не сможет подключиться, мы просто получим предупреждение - Warning. Если его проигнорировать, выполнение скрипта в этом файле не завершится.</p>
15 <p>Если файл, который присоединили с помощью этой конструкции, по какой-либо причине не сможет подключиться, мы просто получим предупреждение - Warning. Если его проигнорировать, выполнение скрипта в этом файле не завершится.</p>
16 <p>Команда include используется для файлов, важность которых некритична. Мы запишем в историю, что один не подключился - "обратите внимание". Но работа программы продолжится без него.</p>
16 <p>Команда include используется для файлов, важность которых некритична. Мы запишем в историю, что один не подключился - "обратите внимание". Но работа программы продолжится без него.</p>
17 <p>Предположим, у нас есть файл<em> Variable.php</em>, а в нем следующий код:</p>
17 <p>Предположим, у нас есть файл<em> Variable.php</em>, а в нем следующий код:</p>
18 <p>Подключаем его в файле<em>index.php:</em></p>
18 <p>Подключаем его в файле<em>index.php:</em></p>
19 &lt;?php for($i=0;$i&lt;2;$i++){ include ("Variable.php"); echo 'Значение переменной - '.$count.' '; $count++; }<p>Такой код выведет следующее:</p>
19 &lt;?php for($i=0;$i&lt;2;$i++){ include ("Variable.php"); echo 'Значение переменной - '.$count.' '; $count++; }<p>Такой код выведет следующее:</p>
20 Значение переменной -1 Значение переменной -1 <p>При ошибочном подключении</p>
20 Значение переменной -1 Значение переменной -1 <p>При ошибочном подключении</p>
21 &lt;?php for($i=0;$i&lt;2;$i++){ include ("11Variable.php"); echo 'Значение переменной - '.$count.' '; $count++; }<p>Такой код выведет следующее:</p>
21 &lt;?php for($i=0;$i&lt;2;$i++){ include ("11Variable.php"); echo 'Значение переменной - '.$count.' '; $count++; }<p>Такой код выведет следующее:</p>
22 Значение переменной - Значение переменной -1 <p>Если используем require и файл при этом не подключится, то выполнение скрипта завершится фатальной ошибкой. Например, приостановится загрузка страницы сайта.</p>
22 Значение переменной - Значение переменной -1 <p>Если используем require и файл при этом не подключится, то выполнение скрипта завершится фатальной ошибкой. Например, приостановится загрузка страницы сайта.</p>
23 <p>Эта команда применяется для тех файлов, подключение которых принципиально. Без них работа программы невозможна, поэтому она остановится.</p>
23 <p>Эта команда применяется для тех файлов, подключение которых принципиально. Без них работа программы невозможна, поэтому она остановится.</p>
24 <p>Процесс аналогичен инструкции<em>include</em>. При ошибочном подключении код выглядит так:</p>
24 <p>Процесс аналогичен инструкции<em>include</em>. При ошибочном подключении код выглядит так:</p>
25 &lt;?php for($i=0;$i&lt;2;$i++){ require ("11Variable.php"); echo 'Значение переменной - '.$count.' '; $count++; }<p>Он прекратит работу на первой итерации цикла после попытки подключения файла.</p>
25 &lt;?php for($i=0;$i&lt;2;$i++){ require ("11Variable.php"); echo 'Значение переменной - '.$count.' '; $count++; }<p>Он прекратит работу на первой итерации цикла после попытки подключения файла.</p>
26 <p>Конструкция include с дополнением _once означает, что этот файл можно подключить только единожды. Команды без суффикса _once заставляют файл подключаться раз, второй, третий. Если объявляем директиву include_once, то он используется один раз. Это немного экономит место.</p>
26 <p>Конструкция include с дополнением _once означает, что этот файл можно подключить только единожды. Команды без суффикса _once заставляют файл подключаться раз, второй, третий. Если объявляем директиву include_once, то он используется один раз. Это немного экономит место.</p>
27 <p>Пример инструкции:</p>
27 <p>Пример инструкции:</p>
28 &lt;?php for($i=0;$i&lt;2;$i++){ include_once ("Variable.php"); echo 'Значение переменной - '.$count.' '; $count++; }<p>Такой код выведет следующее:</p>
28 &lt;?php for($i=0;$i&lt;2;$i++){ include_once ("Variable.php"); echo 'Значение переменной - '.$count.' '; $count++; }<p>Такой код выведет следующее:</p>
29 Значение переменной -1 Значение переменной -2 <p>Отличается от require только отношением к количеству подключений скрипта. В коде большой программы может находиться много цепочных подключений, а внутри них могут содержаться еще другие файлы. Если использовать команду include или require, то каждый раз будет постоянно подключаться вся эта сложная цепочка.</p>
29 Значение переменной -1 Значение переменной -2 <p>Отличается от require только отношением к количеству подключений скрипта. В коде большой программы может находиться много цепочных подключений, а внутри них могут содержаться еще другие файлы. Если использовать команду include или require, то каждый раз будет постоянно подключаться вся эта сложная цепочка.</p>
30 <p>Благодаря директиве<em>_once</em>файл хранится с пометкой, что он уже применялся. Мы его больше не трогаем и не используем.</p>
30 <p>Благодаря директиве<em>_once</em>файл хранится с пометкой, что он уже применялся. Мы его больше не трогаем и не используем.</p>
31 <p>Любой подключенный файл имеет ту же область видимости, что и строка, где мы указали одну из директив. Если мы объявили ее посередине файла, то область видимости будет глобальной. Если внутри функции - локальной.</p>
31 <p>Любой подключенный файл имеет ту же область видимости, что и строка, где мы указали одну из директив. Если мы объявили ее посередине файла, то область видимости будет глобальной. Если внутри функции - локальной.</p>
32 <p>Мы рассмотрели все четыре возможных варианта, как подключить PHP-файл с целью расширения программы. Оптимальные среди них - конструкции с суффиксом _once.</p>
32 <p>Мы рассмотрели все четыре возможных варианта, как подключить PHP-файл с целью расширения программы. Оптимальные среди них - конструкции с суффиксом _once.</p>
33 <p>Без<em>_once</em>происходит постоянное переопределение переменных. Оно может привести к алгоритмическим ошибкам. Еще возможна ошибка при вызове функции, которая находится в дважды подключенном файле. Поэтому наш выбор -<em>include_once</em>и <em>require_once</em>в зависимости от важности файлов для работы программы. Инструкции с суффиксами помогают избежать ошибок, связанных с повторным подключением.</p>
33 <p>Без<em>_once</em>происходит постоянное переопределение переменных. Оно может привести к алгоритмическим ошибкам. Еще возможна ошибка при вызове функции, которая находится в дважды подключенном файле. Поэтому наш выбор -<em>include_once</em>и <em>require_once</em>в зависимости от важности файлов для работы программы. Инструкции с суффиксами помогают избежать ошибок, связанных с повторным подключением.</p>
34 <p>Чтобы отличать основные файлы от подключаемых, вторые можно переименовать. К примеру, мы пишем сайт на PHP. Добавим<em>.inc</em>к основным файлам<em>header.php</em>,<em>footer.php</em>и другим. Получим названия вида<em>header.inc.php, footer.inc.php</em>и тому подобные. За счет этого в папке вы сразу поймете, какие скрипты основные, а какие - второстепенные.</p>
34 <p>Чтобы отличать основные файлы от подключаемых, вторые можно переименовать. К примеру, мы пишем сайт на PHP. Добавим<em>.inc</em>к основным файлам<em>header.php</em>,<em>footer.php</em>и другим. Получим названия вида<em>header.inc.php, footer.inc.php</em>и тому подобные. За счет этого в папке вы сразу поймете, какие скрипты основные, а какие - второстепенные.</p>
35 <p>Добавлять<em>.inc</em>нужно исключительно для визуального оформления: никакой функциональной нагрузки прием не несет. Но удобство и структура важны в программировании, поэтому старайтесь все делать в едином стиле.</p>
35 <p>Добавлять<em>.inc</em>нужно исключительно для визуального оформления: никакой функциональной нагрузки прием не несет. Но удобство и структура важны в программировании, поэтому старайтесь все делать в едином стиле.</p>