phpinclude,php include require 区别
php的include怎样引用方法
只需要引入包含方法的文件就可以直接调用方法了。
比如在a.php文件里写一个方法
function a(){
return 'String a';
}
在b.php文件里包含a.php文件
include 'a.php';
$string = a();
echo $string; // String a
如果形势不是你所想要的,我们可以详细交流。
include的php语句
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=1bar=2';// Won't work; looks for a file named 'file.php?foo=1bar=2' on the// local filesystem.include 'file.php?foo=1bar=2';// Works.include '/file.php?foo=1bar=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 配置选项。
注:由于这是一个语言结构而非函数,因此它无法被变量函数调用。
PHP中"include"的含义是什么?
include 是引入文件的意思 通过include() 或 require() 函数,您可以在服务器执行 PHP 文件之前在该文件中插入一个文件的内容。除了它们处理错误的方式不同之外,这两个函数在其他方面都是相同的。include() 函数会生成一个警告(但是脚本会继续执行),而 require() 函数会生成一个致命错误(fatal error)(在错误发生后脚本会停止执行)。 这两个函数用于创建可在多个页面重复使用的函数、页眉、页脚或元素。 这会为开发者节省大量的时间。这意味着您可以创建供所有网页引用的标准页眉或菜单文件。当页眉需要更新时,您只更新一个包含文件就可以了,或者当您向网站添加一张新页面时,仅仅需要修改一下菜单文件(而不是更新所有网页中的链接)。
PHP中include和require的区别详解
“include”与“required”的作用都是相同的,唯一不同的是PHP在遇到“include”命令时,它就必须重新解释一次。如果在同一个PHP网页中出现10次“include”命令时,它便会被重新解释10次。不过当PHP遇到“require”命令时,不管它在同一个PHP网页中出现过几次,PHP只会解释一次而已。
“require”的工作方式是为了让PHP程序得到更高的效率,所以当它在同一个PHP网页中解释过一次后,第二次出现便不会再解释,这是它的优点。不过严格来说,这也是它的唯一
的缺点,因为它不会重复解释引入的文件,所以当PHP网页中使用循环或条件语句来引入文件时,“require”则不会做任何的改变。当有类似这样的情形时,就必须使用“include”命令来引入
文件了。
当PHP遇到一个利用“include”方式引入的文件,它就会解释一次;遇到第二次时,PHP还是会重新解释一次。与“require”相比,“include”的执行效率则会下降许多;而且当引入文件中包含了用户自定义的函数时,PHP在解释的过程中会发生函数重复定义的问题。不过“include”也不是没有优点的,因为在PHP网页中,它会每遇到一次“include”命令就会重复解释一次,所以非常适合使用在循环或条件判断的语句里。
一个PHP文件能多次使用include包涵其他PHP文件吗?
可以包含多次,需要注意的是当一个文件被包含时,其中所包含的代码继承了 include 所在行的变量范围。从该处开始,调用文件在该行处可用的任何变量在被调用的文件中也都可用。不过所有在包含文件中定义的函数和类都具有全局作用域。
另外include?是一个特殊的语言结构,其参数不需要括号。在比较其返回值时要注意
如果在包含文件中定义有函数,这些函数不管是在 return 之前还是之后定义的,都可以独立在主文件中使用。如果文件被包含两次,PHP 5 发出致命错误因为函数已经被定义,但是 PHP 4 不会对在 return 之后定义的函数报错。推荐使用 include_once 而不是检查文件是否已包含并在包含文件中有条件返回。
说明:
include?语句包含并运行指定文件。
PHP能否使用include做用户登录信息保存?
理论上可以,
新建一个登陆信息.php,然后include这个文件,
然后每次登陆用户,你就把他的标识信息保存到这个文件中,
然后每次根据文件中的是否含有某个用户的标识来判断他是不是在线,
不过这样有点傻,为啥不用session呢,