重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本篇文章为大家展示了php中require_once如何使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
创新互联服务项目包括丰林网站建设、丰林网站制作、丰林网页制作以及丰林网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,丰林网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到丰林省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!require_once 语句和 require 语句完全相同,区别是 PHP 会检查该文件是否已经被包含过,如果是则不会再次包含。
参见 include_once 的文档来理解 _once 的含义,并理解与没有 _once 时候有什么不同。
有一个文件a.php,里面有一个变量$var=1;我在b.php 中用require_once()函数引用了a.php文件,然后我在c.php 中用require_once()引用了b.php文件,在c.php中有一个函数 需要引用a.php中的变量$var. 但却访问不了 变量的值为空
如果我想访问变量$var该怎么做。
require_once() 为了避免重复加载文件。 意为:加载文件一次
require_once() 语句在脚本执行期间包括并运行指定文件。此行为和 require() 语句类似,区别是如果该文件中的代码已经被包括了,则不会再次包括。
一般都用在包含文件的时候,比如你写了一个类文件a.php,这个文件主要是定义类,代码可能如下:
class p
{
public $a;
function make(}
{
echo $a;
}
}
这个时候你在文件b.php中要使用到该类,就可以再b.php开头加上,require_once(a.php);来加载这个a.php,就相当于把a.php的文件的代码复制到了b.php中。
类似的方法还有requeire(),include(),include_once()其中带_once字样的方法都是声明只加载一次,因为你require_once()的别文件中可能已经require_once(a.php)了,如果再加载就造成重复加载,代码量会增加造成解析减慢。
我帮你测试过了,没有问题,require_once就行
a.php:
$a=123;
?>
b.php:
require_once("a.php");
?>
c.php:
require_once("b.php");
echo $a;
?>
require_once 与require的区别:
require_once 只会加载同一个文件一次,require会加载多次。
相信和我一样的小白还是有些疑惑吧。于是我们猜想:如果456.php引入过123.php,现在文件test_require.php引入了“456.php”与“123.php”。如果是使用require方法,那么在test_require.php中,123.php将被引入2次,而使用require_once方法123.php被引入一次。那么我们做实验吧!
一、require方法
123.php的内容如下:
1
2
echo "123\n";
456.php内容如下:
require("123.php");
echo "456\n";
test_require.php的内容如下:
require("123.php");
require("456.php");
运行test_require.php。
二、require_once方法
123.php内容不变。456.php和test_require.php更改require_once方法。内容如下:
//456.php
require_once "123.php";
echo "456\n";
//test_require.php
require_once "123.php";
require_once "456.php";
运行test_require.php,结果如下:
三、混用出错
如果,在456.php中使用require方法,而在require_once方法,那么require_once将会失效。三个文件代码如下:
//123.php
echo "123\n";
//456.php
require "123.php";
echo "456\n";
//test_require.php
require_once "123.php";
require_once "456.php";
上述内容就是php中require_once如何使用,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。