require(),include(),require_once()和include_once()区别

2019-04-10 22:14:44于丽

需要变量$varfirst和$varsecond
*/
/*不能正确执行,远程服务器不处理.txt文件*/
require("http://some_server/file.txt?varfirst=1&varsecond=2");

/*不正确,这样只能在本地机上寻找file.php文件*/
require("file.php?varfirst=1&varsecond=2");

/*正确的语句*/
require("http://some_server/file.php?varfirst=1&varsecond=2");

$varfirst=1;
$varsecond=2;
require("file.txt"); /*正确的语句*/
require("file.php"); /*正确的语句*/

本来在php3.0中,require()所包含的文件可以使用return语句,但条件是return语句不能出现在{}内部,而必须出现在被包含文件的全局范围内。在php4.0中已经取消了require()的这个功能,但是仍然可以使用include()来实现。

2.include()语句
include()语句和require()语句有许多相同的地方。凡是在上边require()语句中没有明确说明不能适用于include()的部分外,require()语句的功能完全适用于include()语句。下边介绍require()语句所没有的include()语句的功能和特点。
include语句只有在被执行时才会读入要包含的文件。在错误处理方便,使用include语句,如果发生包含错误,程序将跳过include语句,虽然会显示错误信息但是程序还是会继续执行!
php处理器会在每次遇到include()语句时,对它进行重新处理,所以可以根据不同情况的,在条件控制语句和循环语句中使用include()来包含不同的文件。
例如:

<?php
$files=array('first.php','second.php','third.php');
for($i=0;$i<count($files);$i++)
{
include $files[$i];
}
?>

在php3.0和php4.0中include()语句所包含的文件中都可以使用return语句来返回一个值,并停止执行被包含文件下面的内容。但php3.0和php4.0在处理这样的情况时有所不同。在php3.0中return语句不能包含在{}内,除非它在一个函数中,因为这时它表示函数的返回值而不是文件的返回值。而在php4.0中就没有了这样的限制,用户甚至可以在文件中返回一个数字,就象函数的返回值一样。这样的语句在

php3.0中通常会报告错误。以下举例说明:
假设被包含的文件为test.inc和主文件main.php位于一个目录中。test.inc的内容如下:
test.inc

<?php
echo "Before the return<br>n";
if(1)
{
return 27;
}
echo "After the return<br>n";
?>

假设在main.php文件中包含下面的语句:

<?php
$retval=include('test.inc');
echo "File returned:'$retval'<br>n";
?>

php3.0解释器会在第二行报告错误,而不能得到include()语句的返回值。但在php4.0中会得到下面的结果:
Before the return
File returned: '27'
下边假设main.php改为:

<?php
include('test.inc');
相关文章 大家在看