以下文档也适用于 require 。
被包含文件先按参数给出的路径寻找,如果没有给出目录(只有文件名)时则按照 include_path 指定的目录寻找。如果在 include_path 下没找到该文件则 include 最后才在调用脚本文件所在的目录和当前工作目录下寻找。如果最后仍未找到文件则include 结构会发出一条警告;这一点和 require 不同,后者会发出一个致命错误。
如果定义了路径——不管是绝对路径(在 Windows 下以盘符或者 开头,在 Unix/Linux 下以 / 开头)还是当前目录的相对路径(以 . 或者 .. 开头)——include_path 都会被完全忽略。例如一个文件以 ../ 开头,则解析器会在当前目录的父目录下寻找该文件。
有关 PHP 怎样处理包含文件和包含路径的更多信息参见 include_path 部分的文档。
当一个文件被包含时,其中所包含的代码继承了 include 所在行的变量范围。从该处开始,调用文件在该行处可用的任何变量在被调用的文件中也都可用。不过所有在包含文件中定义的函数和类都具有全局作用域。
php include函数应该是我们最常用的方法,include() 语句包含并运行指定文件。但是就是因为这个我们可能忽略了他的一些其他用法,本人因为工作需要又重新看了一遍,在此做一下简要记录:
1.include与require简单区别
当include所包含的文件不存在时,他只是产生一个警告,但是脚本会继续执行。
而require引用的文件如果不存在的时候,就会提示错误,并终止脚本运行。
2.被包含文件内的变量的变量范围
当一个文件被包含时,其中所包含的代码继承了 include 所在行的变量范围。如果 include 出现于调用文件中的一个函数里,则被调用的文件中所包含的所有代码将表现得如同它们是在该函数内部定义的一样。不过所有在包含文件中定义的函数和类都具有全局作用域。
当一个文件被包含时,语法解析器在目标文件的开头脱离 PHP 模式并进入 HTML 模式,到文件结尾处恢复。由于此原因,目标文件中应被当作 PHP 代码执行的任何代码都必须被包括在有效的 PHP 起始和结束标记之中。
3.include()返回值
如果取得include里面的变量值,需要在include引用的文件里加上 return
例如: 文件return.php
<?php $var='ok'; return $var; ?>
if( include('return.php')=='ok' ) { ... } if不执行里面的,因为include('return.php')值为1
if( (include 'return.php')=='ok' ) { ... } if可以执行里面的
所以如果用include进行条件比较,需要这样(include 'return.php')
4. 使用输出缓冲来将 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; } ?>
1. 包含一些类定义文件,函数文件,这是常用的;
2.包含HTML文件
include "header.htm";
上面的header.htm中可以融合php的语句。
因为可以包含htm静态文件,所以可以设计缓存机制,比如把一些页面分几部分,有一些读取数据库耗效率的部分可以缓存成HTML,然后通过include 引进。
3.include 的文件可以有返回;
$i = include 'abc.php';
abc.php 的源码实例:
<?php return "hello world"; ?>
那么 echo $i; 会输出hello world.
而如果abc.php没有return.那么echo $i 会输出1
include 的变量范围
$a="hello world"; include "abc.php";
$a 在abc.php中是可见的;
abc.php 中的变量在include之后的位置也是可见的;用法非常灵活!
以上就是php include的使用法详解的详细内容,更多请关注二当家的素材网其它相关文章!
友情提示:垃圾评论一律封号 加我微信:826096331拉你进VIP群学习群