2012-08-24 60 views
4

include('./code.php');如何工作?我知道它相當於讓代碼「直接粘貼」在發生包含的位置,但是,例如:在PHP中,include()如何正確工作?

如果我有兩個頁面,即page1.phppage2.php,其中我需要操作不同的變量和函數./code.php,是否include()創建./code.php的副本,還是它實質上鍊接回到實際頁面./code.php

+2

我不確定我是否按照你的要求提問,但是你在問題開始時所說的內容是準確的。它基本上粘貼代碼 –

+2

這裏的一些解釋http://php.net/manual/en/function.include.php – user710502

回答

4

See the manual

如果您include是一個文本文件,它將在文檔中顯示爲文本。

include確實的行爲像複製粘貼:

test.php的

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

的test.txt

echo $test; 

以上將輸出例如:

**echo $test;** 

如果你要包括PHP文件,你還需要有PHP代碼<?php?>

而且,通常括號不include後說,像這樣的:

include 'test.php'; 
+0

在你的例子中,它的行爲完全像複製和粘貼。 –

+3

@保羅 - 不,它沒有。如果它的行爲像複製和粘貼,結果會是這樣的:'** test **'。 –

+0

不,它是一個.txt文件。改變擴展名.php,看看會發生什麼。 –

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

在任何情況下它都不會重定向到Code.php。

4

基本上,在翻譯時擊中include 'foo.php';聲明,它會打開指定的文件,讀取它的所有內容,取代了「有」與來自其他文件以及將碼位繼續解釋:

<?php 
echo "hello"; 

include('foo.php'); 

echo "world"; 

變爲(理論值)

<?php 
echo "hello"; 

?> 
{CONTENT OF foo.php} 
<?php 

echo "world"; 

但是,所有這些只發生在內存中,而不是在磁盤上。沒有文件被更改或任何東西。

0

這取決於你如何包含code.php文件。如果您將code.php文件包含到page1.php中,然後包含page2.php,那麼您將可以訪問它的變量,並且它只會「複製和粘貼」(僅用於使它更容易理解,因爲實際上那動力學如上所述)的文件中但是如果您鏈接,如:

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

然後code.php將有機會獲得所有的變量內page1.php中,但是:

  • page1.php中將無法訪問代碼中的變量。PHP
  • 使page2.php將無法訪問在瓦爾code.php

所以爲了inherit code.php的funcitonality inot都page1.phppage2.php一定要像做:

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

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

然後,它會按預期工作。所以只需要記住那裏。