include_once和require_once,include_once和include的区别?

吉云

include_once 和 require_once,include_once 和 include 的区别?

哎呦喂,这标题一上来就问得这么严肃,感觉像在考研一样!不过别慌,今天就让老司机带你们来趟“PHP 文件包含”之旅,保准你学完之后对 include_once 和 require_once 以及 include 这几个家伙,都能说出一二三来!

include_once和require_once,include_once和include的区别?

我们先把“文件包含”这四个字拆解一下,简单来说,就是把一个 PHP 文件的内容“复制粘贴”到另一个 PHP 文件里。就像你写了一篇超级无敌棒的作文,结果发现另一篇作文里正好缺个开头,于是你把作文开头部分“复制粘贴”到另一篇作文里,然后两篇作文就完美地融合到一起了。

而 PHP 里呢,这几个“文件包含”的关键词,就相当于我们“复制粘贴”的工具:

include:这个家伙就像是一般的“复制粘贴”,如果文件不存在,它会发出警告,但程序还会继续运行。就好像你把一篇不存在的作文开头“复制粘贴”到另一篇作文里,虽然没有成功,但作文还是能继续往下写。

include_once:这个家伙就聪明多了,它会先检查一下文件是否已经被包含过,如果已经被包含过了,就不会再包含它了。就好像你已经把一篇作文开头“复制粘贴”到另一篇作文里了,就不会再重复“复制粘贴”一次了。

require:这个家伙比 include 更严格,如果文件不存在,它就会直接终止程序运行。就像你把一篇不存在的作文开头“复制粘贴”到另一篇作文里,结果整篇作文都写不下去了。

require_once:这个家伙和 include_once 一样,都会检查文件是否已经被包含过,如果已经被包含过了,就不会再包含它了。同时它也像 require 一样,如果文件不存在,就会直接终止程序运行。

那这四个家伙到底有什么区别呢?

为了让你更直观地理解,我专门整理了一张

关键词 功能 文件不存在时 重复包含时
include 包含文件 发出警告,程序继续运行 再次包含
include_once 包含文件,仅包含一次 发出警告,程序继续运行 不再包含
require 包含文件 终止程序运行 再次包含
require_once 包含文件,仅包含一次 终止程序运行 不再包含

你看,这几个家伙的功能其实很相似,但是它们在文件不存在和重复包含时的处理方式却有所不同!

那我们到底应该用哪个呢?

这就要看你的具体需求了!

如果你想包含的文件是必须存在的,而且不能重复包含,那么就用 require_once! 就像你必须把作文的开头部分“复制粘贴”到另一篇作文里,而且不能重复“复制粘贴”一样。

如果你想包含的文件不是必须存在的,而且可以重复包含,那么就用 include! 就像你想要把一篇作文的开头部分“复制粘贴”到另一篇作文里,即使没有成功,也不影响作文的继续写作一样。

如果你想包含的文件不是必须存在的,而且不能重复包含,那么就用 include_once! 就像你想要把一篇作文的开头部分“复制粘贴”到另一篇作文里,但是你已经“复制粘贴”过一次了,所以就不用再“复制粘贴”了。

总结一下,这几个家伙虽然功能相似,但根据不同的需求选择不同的关键词,才能让你的代码更加安全可靠!

想问问你,你平时在写代码的时候,都怎么选择文件包含的关键词呢?

欢迎在评论区分享你的经验,让大家一起进步!

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。

目录[+]