php中 include 和 require,include 和 include_once,require和require_once 的区别

require()语句的性能与include()相类似,都是包括并运行指定文件。

##include()和require()的区别:
####加载次数不一样

include():在执行文件时每次都要进行读取和评估;
require():文件只处理一次(实际上,文件内容替换require()语句)

分析:

  • 如果可能执行多次的代码,则使用require()效率比较高。
  • 若每次执行代码时相读取不同的文件或者有通过一组文件迭代循环,就使用include()

####加载方式不一样

require()是预加载机制(程序执行之前进行加载),位置一般放在脚本最前面,一开始就引入所有可能用到的文件;
include()是即用即加载(执行到它所在的那行代码时才加载进来)。

分析:

  • include()适合条件的引用

例:

	$file = "./app.txt";
	if(file_exists($file)){
		include $file;//只有在文件存在时才加载
	}
	if(file_exists($file)){
		require $file;//无论文件存不存在都会加载
	}

####报错类型不一样

include()引入文件时,如果遇到错误会提示警告性错误(E_WARNING )并继续执行;
require()引入文件遇到错误时也提示致命编译性错误(E_COMPILE_ERROR )且会终止程序的运行。

分析:

  • PHP系统在加载PHP程序时有一个伪编译过程,可使程序运行速度加快。
  • incluce的文档为解释执行,include的文件中出错了,主程序继续往下执行
  • reuire文件会把require语句替换成文件内容,使它成为主程序的一部分,require的文件出错了,主程序也就停了

##include 和 include_once,require和require_once 的区别:

  • include()、require()执行即包含文件,不会对引入的文件进行检查(这里会消耗一些资源,降低执行的效率),可能会出现重复包含的情况;
  • 而include_once()、require_once()在包含时会先检查文件是否已经包含过了,如果已包含,则不再包含文件,这样的引入文件方式即可以节省资源,又可避免重复定义的错误。

你可能感兴趣的:(require,和,include,的区别,require,和,require_once,的区别,include,和,include_once,的区别,php)