html.okpython.net
HTML и CSS для начинающих

PHP :: Подключение внешних файлов

В ходе работы над большими приложениями возникает необходимость в повторном использовании одних и тех же фрагментов кода в разных скриптах. В таких случаях многократно используемые куски кода удобно хранить в отдельных файлах, при необходимости подключая их к требуемому скрипту. Для этого предназначены операторы include, require, а также include_once и require_once. Первые два оператора включают и выполняют указанный файл с той лишь разницей, что оператор require в случае ошибки останавливает выполнение скрипта, в то время как оператор include всего лишь выдает предупреждение, продолжая выполнять скрипт дальше. Что касается второй пары операторов, то они включают код указанного файла только один раз, игнорируя попытки его повторного включения и выполнения. Пусть, например, у нас имеется файл inc_file.php, код которого показан в примере №1.

PHP htmlCodes
<?php

//Определяем переменныево включаемом файле
$str_1='Я была определена в глобальной области видимости подключаемого файла.';
$str_2='А я нахожусь в строке №'. __LINE__ .' подключаемого скрипта.';

//Определяем функцию во включаемом файле
function my_func(){
	$str_3='Я была определена в локальной области видимости подключаемого файла.';
	echo $str_3;
}

?>

Пример №1. Код подключаемого внешнего файла inc_file.php

Используем код данного файла в текущем скрипте, подключив его при помощи оператора include (см. пример №2). При этом будем считать, что оба файла находятся в одной папке.

PHP htmlCodes
<?php

include 'inc_file.php';

//Выведет строку $str_1, т.к. переменная унаследовала 
//глобальную область видимости
echo $str_1.'<br>';

//Выведет 'А я нахожусь в строке №4 подключаемого скрипта.'
echo $str_2.'<br>';

my_func(); //Выведет строку $str_3

?>

Пример №2. Использование оператора include для подключения кода из внешнего файла

Отметим, что код включаемого файла наследует ту же область видимости переменных, что и строка, на которой произошло включение (см. примеры №2 и №3). Поэтому, если включение происходит внутри функции, весь код, содержащийся во включаемом файле, будет вести себя так, как будто он был определен внутри этой функции. Однако все функции и классы, объявленные во включаемом файле, будут доступны в глобальной области видимости текущего скрипта. Также следует быть внимательным с магическими константами (например, __LINE__), которые выполняются парсером перед тем, как происходит включение.

PHP htmlCodes
<?php

function func_2(){
	include 'inc_file.php';
}
func_2(); //Вызываем функцию для активации включения

//Выведет ошибку, т.к. переменная унаследовала локальную область видимости
echo $str_1;
//Выведет ошибку, т.к. переменная унаследовала локальную область видимости
echo $str_2;

//Функции и классы все равно доступны в глобальной области видимости
my_func(); //Выведет строку $str_3

?>

Пример №3. Использование оператора include внутри функции

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

Кстати, описание управляющих конструкций, перечисленных в данном пункте, можно найти в разделе «Справочник языка» -> «Управляющие конструкции».

Быстрый переход к другим страницам