PHP: немного об include и require



Эти директивы заменяются интерпретатором в процессе выполнения скрипта на содержимое файла, указанного в качестве параметра. Аналогией является директива #include в языке C. Синтаксис очень простой:

include "/folder/file.inc";
require "/folder/file.inc";

Кроме открытия локальных файлов, можно подключать файлы по сети используя вместо пути URL. Эта возможность может быть блокирована параметром конфигурации URL fopen wrappers.

Отличие данных директив состоит в том, что в отличие от include, require требует обязательного присутствия подключаемого файла и выдает критическую ошибку при его отстутствии, а include — лишь предупреждение.

Подключаемый файл выполняется как HTML-код. Таким образом, если вы хотите подключить php-скрипт, код должен быть обрамлен <?php и ?>.

Директивы require и include не являются функциями. Скорее они — специальные конструкции языка. Иногда include называют "почти-функцией", так как она может принимать значение, возвращаемое командой return во включаемом коде (при этом выполнение включаемого сценария прекращается).

Пример верного и неверного сравнения возвращаемого значения конструкцией include:

// Неправильно:
if (include ('file.php') == 'ok') {
   echo 'ok';
}

// Правильно:
if ((include 'file.php') == 'ok') {
   echo 'ok';
}

Дополнительно: include_once, require_once, get_included_files

Эти директивы работают аналогично include и require, но позволяют не допускать повторного включения файлов. Их использование предотвращает вторичное объявление функций (что в php недопустимо и вызывает ошибку).

Иногда бывает нужно узнать какие файлы были подключены вышеописанными директивами. Для этого в php есть две идентичные функции: get_included_files и get_required_files. Каждая из них возвращает массив с именами включенных файлов. Вот вам пример использования:

include 'file1.php';
require_once 'file2.php';
var_dump(get_included_files());

Результатом будет вывод такого вида:

array(3) {
  [0]=>
  string(21) "index.php"
  [1]=>
  string(21) "file1.php"
  [2]=>
  string(21) "file2.php"
}

Первый элемент возвращаемого массива - имя исходного скрипта.

Комментарии

1. include может возвращать значение.
2. include файла которого нет, генерит warning или notice уже не помню
3. require файла которого нет генерит fatal error
4. В том то и дело что они работают не ака #include в си, по моему это только require себя так ведет

А если включение файлов по http отключена, то можно ли включать таким образом файлы по http, но с того же домена? Например если файл для включения находится в корне сайта, а файл из которого включается где-нибудь в папке на три уровня "в глубину". При указывании относительного пути можно ведь указывать только одну родительскую паку ../ , а как указать файл, если он лежит где-то выше?

По моему в таких случаях можно использовать что-нить вроде ../../../

louboutin are likely to be made of cheaper materials, and are therefore more prone to chipping and damage. Genuine christian louboutin uk is crafted to a high standard, making this premium jewellery both desirable and practical. With such a huge range of louboutin shoes available,makes the perfect gift for ladies of any age. If you are a louboutin shoes collector and you are concerned about being given imitation as gifts, then why not set up a Club account, and create a wish list? christian louboutin shoes can be found for less when you shop on the Internet. louboutin boots are now available online for discounted prices. christian louboutin sandals is one of the most recognized name brands in the world of high fashion. You will find A-list celebrities such as Sarah Jessica Parker, Janet Jackson and Nicole Kidman wearing louboutin pumps. Since it's conception, the louboutin boots has been produced into a variety of designs, colors, shapes, and styles that have won top picks of millions of women the world over. You are sure to find something of your liking when shopping from either a christian louboutin wedges store or outlet for. Many of the listed hermes handbags found in the main stores or department stores can be found in the outlets, so get out there and start shopping! A great place to shop for gorgeous hermes birkin purse is online. Shopping online will save you up to 70% on all of the latest hermes sale styles. For those of you wanting to save big bucks on your hermes evelyne, try shopping online. You can find great buys and save on the hottest designer Hermes handbags on sale through online auctions.

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешаю теги: <a> <em> <strong> <pre> <ul> <ol> <li>
  • Строки и параграфы переносятся автоматически.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.

Подробнее о форматировании

Image CAPTCHA
Регистр символов учитывается.