include的php语句

 我来答
Believe°54a
2016-05-12 · TA获得超过104个赞
知道答主
回答量:165
采纳率:66%
帮助的人:72.5万
展开全部

include()语句包含并运行指定文件。
以下文档也适用于require()。这两种结构除了在如何处理失败之外完全一样。include()产生一个警告而require()则导致一个致命错误。换句话说,如果想在遇到丢失文件时停止处理页面就用require()。include()就不是这样,脚本会继续运行。同时也要确认设置了合适的 include_path。注意在 php 4.3.5 之前,包含文件中的语法错误不会导致程序停止,但从此版本之后会。
寻找包含文件的顺序先是在当前工作目录的相对的 include_path 下寻找,然后是当前运行脚本所在目录相对的 include_path 下寻找。例如 include_path 是 .,当前工作目录是 /www/,脚本中要 include 一个 include/a.php 并且在该文件中有一句 include b.php,则寻找 b.php 的顺序先是 /www/,然后是 /www/include/。如果文件名以 ../ 开始,则只在当前工作目录相对的 include_path 下寻找。
当一个文件被包含时,其中所包含的代码继承了 include 所在行的变量范围。从该处开始,调用文件在该行处可用的任何变量在被调用的文件中也都可用。不过所有在包含文件中定义的函数和类都具有全局作用域。
例子 16-5. 基本的include()例子
vars.php<?php$color = 'green';$fruit = 'apple';?>test.php<?phpecho A $color $fruit; // Ainclude 'vars.php';echo A $color $fruit; // A green apple?> 如果 include 出现于调用文件中的一个函数里,则被调用的文件中所包含的所有代码将表现得如同它们是在该函数内部定义的一样。所以它将遵循该函数的变量范围。
例子 16-6. 函数中的包含
<?phpfunction foo(){ global $color; include 'vars.php'; echo A $color $fruit;}/* vars.php is in the scope of foo() so * * $fruit is NOT available outside of this * * scope. $color is because we declared it * * as global. */foo(); // A green appleecho A $color $fruit; // A green?>例子 16-7. 通过 HTTP 进行的include()
<?php/* This example assumes that is configured to parse .php * * files and not .txt files. Also, 'Works' here means that the variables * * $foo and $bar are available within the included file. */// Won't work; file.txt wasn't handled by as phpinclude '/file.txt?foo=1&bar=2';// Won't work; looks for a file named 'file.php?foo=1&bar=2' on the// local filesystem.include 'file.php?foo=1&bar=2';// Works.include '/file.php?foo=1&bar=2';$foo = 1;$bar = 2;include 'file.txt'; // Works.include 'file.php'; // Works.?>相关信息参见使用远程文件,fopen()和file()。
因为include()和require()是特殊的语言结构,在条件语句中使用必须将其放在语句组中(花括号中)。
例子 16-8. include() 与条件语句组
<?php// This is WRONG and will not work as desired.if ($condition) include $file;else include $other;// This is CORRECT.if ($condition) { include $file;} else { include $other;}?>处理返回值:可以在被包括的文件中使用return()语句来终止该文件中程序的执行并返回调用它的脚本。同样也可以从被包含的文件中返回值。可以像普通函数一样获得 include 调用的返回值。不过这在包含远程文件时却不行,除非远程文件的输出具有合法的 php 开始和结束标记(如同任何本地文件一样)。可以在标记内定义所需的变量,该变量在文件被包含的位置之后就可用了。
因为include()是一个特殊的语言结构,其参数不需要括号。在比较其返回值时要注意。
例子 16-9. 比较 include 的返回值
<?php// won't work, evaluated as include(('vars.php') == 'OK'), i.e. include('')if (include('vars.php') == 'OK') { echo 'OK';}// worksif ((include 'vars.php') == 'OK') { echo 'OK';}?>注:在 php 3 中,除非是在函数中调用否则被包含的文件中不能出现 return。在此情况下return()作用于该函数而不是整个文件。
例子 16-10.include()和return()语句
return.php<?php$var = 'php';return $var;?>noreturn.php<?php$var = 'php';?>testreturns.php<?php$foo = include 'return.php';echo $foo; // prints 'php'$bar = include 'noreturn.php';echo $bar; // prints 1?>$bar 的值为 1 是因为 include 成功运行了。注意以上例子中的区别。第一个在被包含的文件中用了return()而另一个没有。如果文件不能被包含,则返回FALSE并发出一个 E_WARNING 警告。
如果在包含文件中定义有函数,这些函数可以独立于是否在return()之前还是之后在主文件中使用。如果文件被包含两次,php 5 发出致命错误因为函数已经被定义,但是 php 在return()之后不会抱怨函数已定义。推荐使用include_once()而不是检查文件是否已包含并在包含文件中有条件返回。
另一个将 php 文件“包含”到一个变量中的方法是用输出控制函数结合include()来捕获其输出,例如:
例子 16-11. 使用输出缓冲来将 php 文件包含入一个字符串
<?php$string = get_include_contents('somefile.php');function get_include_contents($filename) { if (is_file($filename)) { ob_start(); include $filename; $contents = ob_get_contents(); ob_end_clean(); return $contents; } return false;}?>要在脚本中自动包含文件,参见 php.ini 中的 auto_prepend_file 和 auto_append_file 配置选项。
注:由于这是一个语言结构而非函数,因此它无法被变量函数调用。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式