2010-11-21 3 views
0

всякий раз, когда мы включаем \ требуют какой-либо файл, используя PHP какPHP: включить требуют поведения

require ('links.php'); ИЛИ include ('links.php');

, который один из двух следующих сценариев происходят

        Пример

позволяет сказать, что есть файл file.php с lwing код

<?php 
echo "my things"; 
?> 
<br /> 

и мы включаем это в

------ 
------ 
<?php 
echo "about to include file"; 
include ('file.php') 
?> 
------ 
------ 

СЦЕНАРИЙ 1: код прилагающемся файла вставляется в родителей \ файлы контейнера PHP код, а затем полный код обрабатывается & HTML \ result сгенерирован ....

значение, сначала этот код сначала положить как

------ 
------ 
<?php 
echo "about to include file"; 
<?php 
echo "my things"; 
?> 
<br /> 
?> 
------ 
------ 

затем обрабатываются

СЦЕНАРИЙ 2: включаемый файл сначала обрабатывается, и результат подключен

означает, сначала включают в себя файл будет обработан и будет получен результат

mythings<br/> 

и после этого он помещается внутри родительского \ контейнерного \ includeer кода, а затем этот код будет обрабатываться neaning

------ 
------ 
<?php 
echo "about to include file"; 
my things<br /> 
?> 
------ 
------ 

и теперь он будет обработан

+0

Какой ваш вопрос именно? В чем проблема? – Sarfraz

+0

ps SCENARIO 1 может вызывать синтаксические ошибки, SCENARIO 2 может вызвать проблемы с переменными и многие другие логические и условные проблемы. – Moon

+0

'@ sarfraz:' не было проблем ... просто было объяснено, что происходит внизу. – Moon

ответ

4

Ну, это не может быть проще понять только с «включить» имя ...

Так - то, что происходит, когда вы

<?php 
echo "including now..."; 
include "myFile.php"; 
echo "blah"; 
?> 

, то он будет в основном получиться так:

<?php 
echo "including now..."; 

?> 
CONTENTS OF myFile.php HERE 
<?php 

echo "blah"; 
?> 

это означает, что в вашем примере это будет выглядеть следующим образом:

<?php 
echo "about to include file"; 
?> 
<?php 
echo "my things"; 
?> 
<br /> 
<?php 
?> 
+0

Если бы это было так простой, мне бы не пришлось публиковать [этот вопрос] (http://stackoverflow.com/questions/7941373/processing-include-require-directives-in-php). Есть идеи? – Peter

1

Это сценарий один. include - простой механизм для «введения» кода в эту строку кода.

В качестве исторического фрагмента, до того, как PHP 4.1, include s использовался для обработки, даже если оператор был в блоке или состоянии, которое никогда не выполнялось. Кроме этого, PHP не имеет ничего, что бы приблизиться к вашему сценарию 2.

1

Это сценарий один.

Также обратите внимание, что require будет вводить код только один раз! так:

<?php 
echo "about to include file"; 
require ('file.php'); 
require ('file.php'); 
require ('file.php'); 
echo "included the file"; 
?> 

даст:

<?php 
echo "about to include file"; 
?><?php 
echo "my things"; 
?> 
<br /><? 
echo "included the file"; 
?> 

тогда:

<?php 
echo "about to include file"; 
include ('file.php'); 
include ('file.php'); 
include ('file.php'); 
echo "included the file"; 
?> 

даст:

<?php 
echo "about to include file"; 
?><?php 
echo "my things"; 
?> 
<br /><?php 
echo "my things"; 
?> 
<br /><?php 
echo "my things"; 
?> 
<br /><?php 
echo "included the file"; 
?>