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

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

Функция include

Представим, что у нас в корне сайта лежат 2 файла: index.php и config.php. Чтобы запустить один скрипт из другого скрипта, нужно передать в функцию include() название файла:

index.php

<?php
    include('config.php');
?>

config.php

<?php
    echo 'Привет';
?>

Теперь при запуске файла index.php будет выполняться также и код из config.php.

Функция require

Функция require() подключает файл точно также, как и include().

Разница между include() и require() в том, что при невозможности подключения файла (файл отсутствует или нет прав) include() покажет ошибку и продолжит работу, а require() покажет ошибку и остановит выполнение скрипта.

Функции include_once и require_once

При использовании функций с приставкой _once вы запрещаете повторное подключение скрипта. При попытке повторного подключения PHP сгенерирует ошибку.

Разумеется, после этой ошибки include_once() продолжит работу, а require_once() остановит скрипт.

Получение данных из подключаемого скрипта

Вызываемый скрипт может передать вызывающему скрипту какие-либо данные с помощью return:

index.php

<?php
	$config = include('config.php');
	echo $config['site_name'];
?>

config.php

<?php
	return [
		'site_url' => 'www.programulin.ru',
		'site_name' => 'Програмулин'
	];
?>

Область видимости подключаемых файлов

Все переменные, константы, функции и т.п., объявленные в подключаемом файле, будут видны в исходном. При этом переменные подключаются в текущую область видимости. Т.е. если подключить файл внутри функции, то переменные будут видны только в ней:

<?php
	function test()
	{
		$config = include('config.php');
		echo $config['site_name'];
	}
	
	test(); // выведет 'Програмулин'
	echo $config['site_name']; // ошибка, переменная $config видна только внутри функции
?>