PHP: включить \ требовать поведения - PullRequest
0 голосов
/ 21 ноября 2010

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

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

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

ПРИМЕР

допустим, есть файл file.php с следующим кодом

<?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/>

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

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

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

Ответы [ 3 ]

4 голосов
/ 21 ноября 2010

Ну, это может быть нелегко понять только с помощью имени "include" ...

Итак, что произойдет, если вы сделаете

<?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
?>
1 голос
/ 21 ноября 2010

Это первый сценарий.

Также обратите внимание, что 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";
?>
1 голос
/ 21 ноября 2010

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

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

...