聊聊PHP中require_once()函数为什么不好用

admin3年前PHP教程96

在上一篇《聊聊PHP中die()和sleep()函数的用法》中给大家简单介绍了die()和sleep()函数的使用方法,感兴趣的朋友可以去学习了解一下~

本文将告诉你PHP中require_once()为什么不好用!

不过在说它不好用之前,我们先开看看require_once()函数的定义和用法。

require_once()函数是PHP中的内置函数,当我们想要将一个PHP文件引入到另一个文件中时,例如当我们需要在PHP脚本中多次引入一个文件时,它就非常有用了。它用于检查文件是否被包含了不止一次,因为如果文件已经被包含了,它会在运行脚本时忽略所有引入的内容。

语法是“require_once('文件名和路径');

require_once函数只接受一个参数'文件名和路径',这是我们想要包含在PHP脚本中的文件。它是一个字符串类型参数。

返回值则是:如果找到了被调用的文件,并且如果文件已经被包含,那么函数将返回布尔值True,如果文件不被包含,那么函数将包含文件并返回True。但是,如果没有找到被调用的文件,则会出现致命错误,不会显示输出,执行会停止,返回Boolean False。

PHP中的require_once()函数的使用示例:

文件名:test.php

代码:

2
3
4
5
6
7
<?php
 
// 文件内容
 
echo "欢迎来到PHP中文网!";
 
?>

文件名:index.php

代码:

2
3
4
5
6
7
8
9
10
11
12
13
<?php  
 
// 包括文件
 
   
 
require_once('test.php');
 
require_once('test.php');
 
   
 
?>

输出:

欢迎来到PHP中文网!

注:require_once()函数会忽略第一个文件引入后的所有类似的引入。

下面我们就来讲讲为什么require_once()函数不好用?

有两点:

1、require_once() 函数在包含所有文件的同时给服务器带来了大量负载。

2、require_once() 函数的功能在存储变量时在重复函数中使用时无法正常工作。

文件名:my_file.php

示例:

2
3
4
5
6
7
<?php
 
// 文件内容
 
$var = 'PHP';
 
?>

文件名:check.php

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
 
function func() {
 
    require_once('my_file.php');
 
    return $var;
 
}
 
for($i = 1; $i <= 3; $i++) {
 
    echo func() . "
";
 
}
 
?>

输出:

PHP

通过将上面示例中的 require_once() 函数替换为 require() 函数,我们可以确保该变量$var在每次函数调用时都可用。

文件名:check2.php

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php  
 
function func() {
 
    require('my_file.php');
 
    return $var;
 
}
 
   
 
for($i = 1; $i <= 3; $i++) {
 
    echo func() . "
";
 
}
 
   
 
?>

输出:

PHP PHP PHP

与 require() 或 include() 函数相比,require_once() 函数速度较慢,因为它在每次脚本调用函数时都要检查文件是否已包含。

到此这篇关于聊聊PHP中require_once()函数为什么不好用的文章就介绍到这了,更多相关PHP require_once()内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

高防服务器使用过程中出现网络卡原因有哪些?国内100G高防服务器适合哪些行业购买?

高防服务器购买使用延迟大顿的的原因有:1、本地网络出现故障;2、本地与高防服务器间的网络链路出现故障;3、dns解析出现故障;4、高防服务器配置过低,导致运用信息处理负荷过高,从而使高防服务器延迟大顿...

php回溯算法计算组合总和的实例代码

给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次。说...

防火墙的作用体现在哪里?100G美国高防服务器如何防御网络攻击?

对于任何规模的企业来说,网络安全都是最紧迫的问题之一。主动防御是保护用户的业务数据和运营免受基于网络的攻击的唯一方法之一。监控网络流量以识别和阻止潜在威胁的防火墙应该是用户企业网络安全基础设施的基础。...

为什么选择扬州BGP高防服务器

为什么选择扬州BGP高防服务器?选择扬州BGP高防服务器的原因可能有以下几点:1.位置优势:扬州是位于江苏省中部,交通便利的城市,距离上海等经济中心城市比较近,具有较好的区位优势。2.稳定性:扬州BG...

实例分析php常量和变量的不同

说明1、常量前没有美元符号;2、常量只能用define()函数和const关键字定义,不能用赋值语句定义;3、常量可以在任何地方定义和访问变量范围的规则;4、一旦定义了常量,就不能重新定义或取消定义,...

在PHP中操作文件的扩展属性

在操作系统的文件中,还存在着一种我们可以自己定义的文件属性。这些属性不是保存在文件内容中,也不是直接可以通过 ls -al 所能看到的内容。它们可以将一个键值对信息永久得关联到文件上,一般现在的 Li...