2012-08-24 61 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'); 

然后,它会按预期工作。所以只需要记住那里。