PHP включает в себя заявление - PullRequest
0 голосов
/ 07 октября 2009

Мне было интересно, как работает include. я думал, что это делает 2 файла или более в один большой файл

например, файл 1 включает файл 2. файл 1 находится в корневом каталоге, а файл 2 находится в корневом каталоге / include / file2. таким образом, если файл 2 должен включать что-то из корневого каталога / include, то вместо включения include ("file3.php"); мне нужно было бы включить include ("root / include / file3.php"); тогда все 3 файла рассматриваются сервером как один большой файл.

Я где-нибудь близко к тому, как на самом деле?

Ответы [ 4 ]

2 голосов
/ 07 октября 2009

Из руководства по PHP:

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

Если путь определен (полный или относительный), include_path будет полностью игнорируется. Например, если имя файла начинается с ../, парсер будет смотреть в родительском каталоге найти запрошенный файл.

Поэтому, если вы не хотите беспокоиться об указании относительных путей, установите include path в / root / include. Затем вы можете просто использовать

include("filename");

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

1 голос
/ 07 октября 2009

С документация :

Когда файл включен, код его содержит наследует переменную области видимости линии, на которой включают происходит.

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

0 голосов
/ 07 октября 2009

Что делает include, так это вставляет один файл в другой.

Скажем, у вас есть a.php:

Hello, 

И b.php:

world!

Тогда c.php:

<?php include "a.php"; include "b.php"; ?>

станет:

Hello, world!

При разборе PHP. PHP делает некоторые магические вещи, но это основной эффект.

Если вам нужно использовать файл из другого каталога (например, «hello / world.php»), вы должны использовать полный путь, а не только имя файла.

0 голосов
/ 07 октября 2009

include получает содержимое файла и помещает его в то место, куда вы вставили оператор включения.

Важно отметить, что включенный файл предварительно анализируется интерпретатором PHP , так что вы можете делать такие вещи, как

if (! @Include ()) {echo 'у файла, отредактированного пользователем, есть синтаксическая ошибка, по умолчанию восстановлено.')}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...