phprequire
‘壹’ php中require和require_once的区别说明
include()
和require()
:语句包括并运行指定文件。
include()
产生一个警告而
require()
则导致一个致命错误。换句话说,如果你想在遇到丢失文件时停止处理页面就用
require()。include()
就不是这样,脚本会继续运行。
require_once()
语句在脚本执行期间包括并运行指定文件。此行为和
require()
语句类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。
include_once()
语句在脚本执行期间包括并运行指定文件。此行为和
include()
语句类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。如同此语句名字暗示的那样,只会包括一次。
1.include()
函数会将指定的档案读入并且执行里面的程序。
例如:include('/home/me/myfile');
被导入的档案中的程序代码都会被执行,而且这些程序在执行的时候会拥有和源文件中呼叫到
include()
函数的位置相同的变量范围(variable
scope)。你可以导入同一个服务器中的静态档案,甚至可以通过合并使用
include()
与
fopen()
函数来导入其它服务器上面的档案。
2.include_once()函数的作用和
include()
是几乎相同的
唯一的差别在于
include_once()
函数会先检查要导入的档案是不是已经在该程序中的其它地方被导入过了,如果有的话就不会再次重复导入该档案(这项功能有时候是很重要的,比方说要导入的档案里面宣告了一些你自行定义好的函数,那么如果在同一个程序重复导入这个档案,在第二次导入的时候便会发生错误讯息,因为
PHP
不允许相同名称的函数被重复宣告第二次)。
3.require()函数会将目标档案的内容读入,并且把自己本身代换成这些读入的内容。
这个读入并且代换的动作是在
PHP
引擎编译你的程序代码的时候发生的,而不是发生在
PHP
引擎开始执行编译好的程序代码的时候(PHP
3.0
引擎的工作方式是编译一行执行一行,但是到了
PHP
4.0
就有所改变了,PHP
4.0
是先把整个程序代码全部编译完成后,再将这些编译好的程序代码一次执行完毕,在编译的过程中不会执行任何程序代码)。require()
通常来导入静态的内容,而
include()
则适合用来导入动态的程序代码。
4.如同
include_once()函数,require_once()
函数会先检查目标档案的内容是不是在之前就已经导入过了,如果是的话,便不会再次重复导入同样的内容。
‘贰’ PHP怎么用require引入文件
这是一个经典的引用路径问题。
被引用的文件是html文件,原文件的图片及css路径不能直接被识别;
因此需要原PHP文件中将路径设置为变量:
如:$css_dir="/css";
$img_dir="/images";
然后将变量嵌入到html文件中去:
<?php echo $css_dir; ?>/index.css
<?php echo $img_dir;?>/img1
‘叁’ PHP 的 require函数
require()是php的内置函数,作用是引入或者包含外部php文件。
工作原理:当本身php文件被执行时,则外部文件的内容就将被包含进该自身php文件中;当包含的外部文件发生错误时,系统将抛出错误提示,并且停止php文件的执行。
注意:使用require时,一个文件存在错误的话,那么程序就会中断执行了,并显示致命错误。
比如cl.php,ts.php两个文件,ts.php要用到cl.php文件中的函数,需要在ts.php中引入或者包含cl.php即可.示例如下:
cl.php
<?php
functionshow(){
echo"cl.php文件中的show方法被调用了!";
}
?>
ts.php
<?php
require'cl.php';
show();
?>
运行结果:
‘肆’ php中require和include的区别
1、概要
require()语句的性能与include()相类似,都是包括并运行指定文件。不同之处在于:对include()语句来说,在执行文件时每次都要进行读取和评估;而对于require()来说,文件只处理一次(实际上,文件内容替换require()语句)。这就意味着如果可能执行多次的代码,则使用require()效率比较高。另外一方面,如果每次执行代码时是读取不同的文件,或者有通过一组文件迭代的循环,就使用include()语句。
require的使用方法如:require("myfile.PHP"),这个语句通常放在PHP脚本程序的最前面。PHP程序在执行前,就会先读入require()语句所引入的文件,使它变成PHP脚本文件的一部分。include使用方法和require一样如:include("myfile.php"),而这个语句一般是放在流程控制的处理区段中。PHP脚本文件在读到include()语句时,才将它包含的文件读取进来。这种方式,可以把程式执行时的流程简单化。
incluce在用到时加载
require在一开始就加载
_once后缀表示已加载的不加载
PHP系统在加载PHP程序时有一个伪编译过程,可使程序运行速度加快。但incluce的文档仍为解释执行。include的文件中出错了,主程序继续往下执行,require的文件出错了,主程序也停了,所以包含的文件出错对系统影响不大的话(如界面文件)就用include,否则用require。
require()和include()语句是语言结构,不是真正的函数,可以像php中其他的语言结构一样,例如echo()可以使用echo("ab")形式,也可以使用echo "abc"形式输出字符串abc。require()和include()语句也可以不加圆括号而直接加参数。
include_once()和require_once()语句也是在脚本执行期间包括运行指定文件。此行为和include()语句及require()类似,使用方法也一样。唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。这两个语句应该用于在脚本执行期间,同一个文件有可能被包括超过一次的情况下,确保它只被包括一次,以避免函数重定义以及变量重新赋值等问题。
2、详情
2.1 报错
include引入文件的时候,如果碰到错误,会给出提示,并继续运行下边的代码。
require引入文件的时候,如果碰到错误,会给出提示,并停止运行下边的代码。
用例子来说话,写两个php文件,名字为test-include.php和test-require.php,注意相同的目录中,不要存在一个名字是test-nothing.php的文件。
test-include.php
<?php
include 'test-nothing.php';
echo 'abc';
?>
test-require.php
<?php
require 'test-nothing.php';
echo 'abc';
?>
浏览http://localhost/test-include.php,因为没有找到test-nothing.php文件,我们看到了报错信息,同时,报错信息的下边显示了abc,你看到的可能是类似下边的情况:
Warning: include(test-nothing.php) [function.include]: failed to open stream: No such file or directory in D:\www\test-include.php on line 2
Warning: include() [function.include]: Failed opening 'test-nothing.php' for inclusion (include_path='.;C:\php5\pear') in D:\www\test-include.php on line 2
abc
浏览http://localhost/test-require.php,因为没有找到test-nothing.php文件,我们看到了报错信息,但是,报错信息的下边没有显示abc,你看到的可能是类似下边的情况:
Warning: require(test-nothing.php) [function.require]: failed to open stream: No such file or directory in D:\www\test-require.php on line 2
Fatal error: require() [function.require]: Failed opening required 'test-nothing' (include_path='.;C:\php5\pear') in D:\www\test-require.php on line 2
2.2 条件引用
include()与require()的功能相同,用法上却有一些不同,include()是有条件包含函数,而require()则是无条件包含函数。
例如下面例子,如果变量$somg为真,则将包含文件somefile.php:
if($some){
include 'somefile.php';
}
但无论$some取何值,下面的代码将把文件somefile.php包含进文件里:
if($something){
require 'somefile.php';
}
下面的例子充分说明了这两个函数之间的不同:
$i = 1;
while ($i < 3) {
require "somefile.$i.php";
$i++;
}
可以从以上这段代码中看出,每一次循环的时候,程序都将把同一个文件包含进去,很显然这不是我们想要的,可以看出这段代码希望在每次循环时,将不同的文件包含进来,如果要完成这个功能,只能使用函数include():
$i = 1;
while ($i < 3) {
include "somefile.$i.php";
$i++;
}
2.3 文件引用方式
include()执行时需要引用的文件每次都要进行读取和评估,require()执行时需要引用的文件只处理一次(实际上执行时需要引用的文件内容替换了require()语句)可以看出若有包含这些指令之一的代码和可能执行多次的代码,则使用require()效率比较高,若每次执行代码时相读取不同的文件或者有通过一组文件叠代的循环,就使用include(),可以给想要包括的文件名设置变量,当参数为 include()时使用这个变量。
‘伍’ PHP include和require区别
require函数是指包含进来的内容被当成当前文件的一个组成部分,所以当包含进来的文件有语法错误或者文件不存在的时候,那当前文件的PHP脚本都不再执行。
include()函数相当于指定这个文件的路径,当被包含的文件有错时,不会影响到本身的程序运行。
以上不为手打 出处为 http://www.jb51.net/article/15681.htm
我个人实验了下 觉得两者应该只是对错误处理方式不同。
‘陆’ PHP中的require引入一个文件,很多都说是在程序执行之前就先读入了要引入的文件
终于遇到个和我又同样疑惑的人了。是滴,我也会在看了手册后发现“require和include除了处理失败方式不同,其他都完全一样”,但查阅其他资料后发现,貌似还有一个载入时机的区别。困扰好久,一直不得解。不过我尝试这么去理解的,偏差地方,还请权威大佬纠正。这两个函数(准确说是语句),最终的作用是将引入的文件复制粘贴到当前引入行。程序要想正常运行,肯定是所有的需要都准备好,否则肯定会出错!(注意出错一词),我认为正式这里的差异化才验证了我的理解。require确实实在zend预编译时,将其引入的文件内容复制到当前,然后执行预编译和执行。而include在预编译的被编译成opcode了,当执行倒这一指令时,会像函数调用一样进入一个栈的环境,在这里完成对引入文件的内容的复制和编译,进而执行(这里就是我的理解)。如果这时候出错了,直接跳出栈,并不影响主流程的进展,这也就是为什么include出错只是warning,而由于require是在主流程里面,所以一旦出错就是致命的(这里的结果呼应了,我的理解)。so,不当之处,请大佬指点。(纯手打。。。。)
‘柒’ php引用错误,require
你的路径问题。。根目录和admin目录引用肯定不一样的,按楼上的做~`
‘捌’ php中require什么意思
require
英 [rɪ'kwaɪə(r)]
美 [rɪ'kwaɪər]
释义
v. 要求;需要;
命令;规定
‘玖’ [php]require 和include
简单说一下
require和include,前者当包含的文件不存在时,程序停止执行,后者当包含的文件不存在时只是报一个警告,程序继续执行。
require和require_once,这两个区别为,前者遇到即包含文件,后者会判断是否已经包含过了,如果包含过了,则不再包含文件。一可以节省资源,二可以避免重复定义的错误。
例如:
require 'xx.php';
echo 'xxxxx';
如果xx.php文件不存在,echo 'xxxxx';这句是不执行的。。在require时就停止了
include 'xx.php';
echo 'xxxxx';
如果xx.php文件不存在,echo 'xxxxx';这句是可以继续执行的。。
require 'xx.php';
require 'xx.php';
这种情况下xx.php被包含两次。
require 'xx.php';
require_once 'xx.php';
这种情况下,第二次包含时,是不会进行包含的。。
include_once和require_once会有性能上的下降,因为他需要判断之前是否包含过。一般情况下,也不太需要去考虑,除非这已经影响到你程序的性能了。
‘拾’ php里面require和include的区别
require 的使用方法如 require("MyRequireFile.php"); 。这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。
include 使用方法如 include("MyIncludeFile.php"); 。这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到 include 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。
他们两个的用途是完全一样的,不一定非得哪个放在最前面哪个放在中间。他们最根本的区别在于错误处理的方式不一样。
require一个文件存在错误的话,那么程序就会中断执行了,并显示致命错误
include一个文件存在错误的话,那么程序不会中端,而是继续执行,并显示一个警告错误。
1. include有返回值,而require没有。
2. include()包括并运行指定文件 在处理失败时include() 产生一个警告,被导入的程序代码都会被执行,而且这些程序在执行的时候会拥有和源文件中呼叫到include()语句的位置相同的变量范围。你可以导入同一个服务器中的静态页面。
3. require()会将目标文件的内容读入,并且把自己本身代换成这些读入的内容 在处理失败时require() 则导致一个致命错。
这个读入并且代换的动作是在PHP引擎编译你的程序代码的时候发生的,而不是发生在PHP引擎开始执行编译好的程序代码的时候(PHP 3.0引擎的工作方式是编译一行执行一行,但是到了PHP 4.0以后就有所改变了,PHP 4.0是先把整个程序代码全部编译完成后,再将这些编译好的程序代码一次执行完毕,在编译的过程中不会执行任何程序代码)。require()通常来导入静态的内容,而include()则适合用导入动态的程序代码。
4. require是无条件包含也就是如果一个流程里加入require,无论条件成立与否都会先执行require。
5. require通常放在PHP程序的最前面,PHP程序在执行前,就会先读入require所指定引入的文件,使它变成PHP程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。
6. include一般是放在流程控制的处理部分中PHP程序网页在读到include的文件时,才将它读进来。这种方式可以把程序执行时的流程简单化。