require与include的区别
2015-08-20 18:05
447 查看
1.执行时机不一样
require这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。
include这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到 include 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。
2.错误处理不一样
require一个文件存在错误的话,那么程序就会中断执行了,并显示致命错误
include一个文件存在错误的话,那么程序不会中端,而是继续执行,并显示一个警告错误。
3.require没有return include可以有return
4.require()语句会无条件地读取它所包含的文件的内容,而不管这些语句是否执行。所以如果你想按照不同的条件包含不同的文件,就必须使用include()语句。
5.require()语句只会在第一次执行时调用它所包含的文件中的内容替换本身这条语句,当再次被执行时只能执行第一次所包含的语句。但是include()语句可以在循环体中来包含不同的文件。
require_once和require的区别?是否可以把require全部替换成require_once?
会先检查文件中是否包含过,如果没有,则包含
可以有效地避免把同一段代码包含进去而出现函数或变量重复定义的错误
1.include_once需要查询一遍已加载的文件列表, 确认是否存在, 然后再加载.浪费资源与时间
2.1. 尝试解析文件的绝对路径, 如果能解析成功, 则检查EG(included_files), 存在则返回, 不存在继续
2. 打开文件, 得到文件的打开路径(opened path)
3. 拿opened path去EG(included_files)查找, 是否存在, 如果存在则返回, 不存在继续
4. 编译文件(compile_file)
require这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。
include这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到 include 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。
2.错误处理不一样
require一个文件存在错误的话,那么程序就会中断执行了,并显示致命错误
include一个文件存在错误的话,那么程序不会中端,而是继续执行,并显示一个警告错误。
3.require没有return include可以有return
4.require()语句会无条件地读取它所包含的文件的内容,而不管这些语句是否执行。所以如果你想按照不同的条件包含不同的文件,就必须使用include()语句。
5.require()语句只会在第一次执行时调用它所包含的文件中的内容替换本身这条语句,当再次被执行时只能执行第一次所包含的语句。但是include()语句可以在循环体中来包含不同的文件。
require_once和require的区别?是否可以把require全部替换成require_once?
会先检查文件中是否包含过,如果没有,则包含
可以有效地避免把同一段代码包含进去而出现函数或变量重复定义的错误
1.include_once需要查询一遍已加载的文件列表, 确认是否存在, 然后再加载.浪费资源与时间
2.1. 尝试解析文件的绝对路径, 如果能解析成功, 则检查EG(included_files), 存在则返回, 不存在继续
2. 打开文件, 得到文件的打开路径(opened path)
3. 拿opened path去EG(included_files)查找, 是否存在, 如果存在则返回, 不存在继续
4. 编译文件(compile_file)
相关文章推荐
- MUI - 打开页面默认弹出键盘及返回关闭键盘
- CoreBluetooth使用 (客户端外部设备)
- uitextfiled 输入 过滤
- java--continue与break的使用
- [SoapUI] Loop a test with different sets of data
- Netsuite本地化解决方案
- iOS时间处理之时间对比 by Nicky.Tsui
- Hue3.9 安装教程:华丽的Spark,Hadoop UI
- 遍历subviews
- poj 2478 Farey Sequence
- qt中如何把插件中的窗口布局到UI设计师的窗口上
- Primary key和Unique Key的区别
- UIViewController中的edgesForExtendedLayout和extendedLayoutIncludesOpaqueBars属性
- OutMan——Foundation框架中的常用结构体、NSNumber类和NSValue类
- uva 11572 Unique Snowflakes
- Jersey 入门与Javabean @QueryParam @PathParam @FormParam
- UIButton设置 textAlignment 属性的方法
- KVC的妙用之UIAlertController的UIAlertAction外观改变
- UIImage的发掘
- 【IOS】UITableView样式的自定义