В PHP, как включить () точно работать?

Как include('./code.php'); Работа? Я понимаю, что это эквивалентно тому, что код «вставлен» непосредственно там, где это происходит, но, например:

Если у меня есть две страницы, page1.php и page2.php , из которых мне нужно будет манипулировать различными переменными и функциями в ./code.php , include() создает копию ./code.php или делает это по существу ссылка на фактическую страницу ./code.php ?

См. Руководство .

Если вы include текстовый файл, он будет отображаться как текст в документе.

include не ведет себя как copy-paste:

test.php

 <?php echo '**'; $test = 'test'; include 'test.txt'; echo '**'; ?> 

test.txt

 echo $test; 

Вышеприведенный пример выводит:

 **echo $test;** 

Если вы собираетесь включать файлы PHP, вам все равно нужно иметь теги PHP <?php и ?> .

Кроме того, обычно круглые скобки не помещаются после include , например:

 include 'test.php'; 

В основном, когда интерпретатор попадает в include 'foo.php'; , он открывает указанный файл, считывает все его содержимое, заменяет бит «include» кодом из другого файла и продолжает интерпретировать:

 <?php echo "hello"; include('foo.php'); echo "world"; в <?php echo "hello"; include('foo.php'); echo "world"; 

становится (теоретическим)

 <?php echo "hello"; ?> {CONTENT OF foo.php} <?php echo "world"; 

Однако все это происходит только в памяти, а не на диске. Файлы не изменены или что-то еще.

Это зависит от того, как вы включаете файл code.php . Если вы включите файл code.php в page1.php, а затем page2.php, то у вас будет доступ к его варам, и он будет эффективно просто «копировать и вставлять» (beaware, который просто используется, чтобы упростить его понимание, поскольку фактическое динамика этого объясняется выше) файл, однако, если вы ссылаетесь как:

 [code.php] include('page1.php'); include('page2.php'); в [code.php] include('page1.php'); include('page2.php'); 

Тогда code.php будет иметь доступ ко всем переменным в файле page1.php, но:

  • page1.php не будет иметь доступа к vars в code.php
  • page2.php не будет иметь доступа к vars в code.php

Поэтому для того, чтобы inherit funcitonality of code.php, вы не должны делать как page1.php и page2.php что-то вроде:

 [page1.php] include('code.php'); [page2.php] include('code.php'); в [page1.php] include('code.php'); [page2.php] include('code.php'); 

Тогда он будет работать так, как вы ожидаете. Так что просто что-то запомнить.

 include('./code.php'); // The Same As Pasting The Code From Code.PHP. 

Он не будет перенаправлен на Code.php в любом случае.