require和require_once引用不存在的文件,报一个警告一个致命错误,程序终止
incude和include_once引用不存在的文件,报两个警告,程序继续
include/include_once当包含文件不存在时,只抛出警告,后面程序继续执行;
require/require_once当包含文件不存在时,会导致致命错误,程序退出;
include/require如果重复包含文件,可能会出现函数重复定义的错误;
require加载文件时遇到错误终止运行,include遇到错误时报错后正常运行
面试必会
魔术常量 __LINE__ 获取当前行数(即__LINE__所在行数),而不是require/include引用时代码所在行数;
魔术常量 __FILE__ 获取当前文件所在路径(即__FILE__所在文件)
php中的几个常用的魔术常量
在php中我们可以自定义常量,同时php中也自定义了一些好用的常量,这些常量会根据其所在的位置而自动变化。
我们称之为魔术常量。魔术常量可以大写也可以小写,是不区分大小写的
(1). __FILE__ 当前文件路径
(2). __DIR__ 当前文件目录
(3). __LINE__ 在文件文件的那一行
(4). __FUNCTION__ 在当前文件的那个函数中 返回 函数名
(5). __CLASS__ 在当前文件中的那个类中 返回 类名
(6). __METHOD__ 在当前文件的类中的那个方法中 返回 类名::方法名
如果是函数写在本页面了,在本页面的哪里调用都可以
但是目前仅仅是引用,所以代码需要先执行require引用,这是再调用,才不会报错;
require/include不带once,同一内容,引用几次,就会出现几次
require/include带once,同一内容,无论你引用几次,都只出现一次
include/include_once引用文件如果不存在,会产生两个警告,程序会继续执行
【面试题】require/require_once引用文件如果不存在,会产生一个致命错误和一个警告,程序会终止执行
把常用的函数,自定义好,并且封装起来,形成一个函数文件,每次用的时候用require/include等引用包含过来(拿过来复制过来的意思)
截取文件扩展名(面试会要求默写或者要求默写相关获取函数)
require:如果包含不存在的文件则会报出致命错误,代码停止执行;
include:如果包含不存在的文件会提示,后面的代码继续执行;
*_once:文件只包含一次,而不加once则是写几次就会包含几次
通过require/require_once包含文件不存在会产生一个致命错误和一个警告,中止执行程序,前者可以多次引用同一个文件,后者只引用一次
include/include_once 引用的文件有错误不会导致致命错误,前者可以多次引用文件,once只引用一次