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

admin3年前PHP教程97

在上一篇《聊聊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()内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

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

相关文章

laravel 表单验证实现多个字段组合后唯一

Laravel 表单验证器的几种使用方法1、使用控制器的 validate 方法进行参数验证/** * 保存一篇新的博客文章。 * * @param Request $r...

PHP中的异常及其处理机制

目录什么是异常?总结上回文章中我们讲到了错误是编译和语法运行时会出现的,它们与逻辑无关,是程序员在码代码时不应该出现的,也就是说,这些错误应该是尽量避免带到线上环境的,他们不能通过try...catc...

美国高防服务器有什么独特之处呢

美国高防服务器具有以下独特之处:高安全性:美国高防服务器通常具有较高的安全性能,可以提供强大的DDoS攻击防护、防火墙、加密传输等安全措施,可以保护用户的数据安全和隐私。可定制性强:美国高防服务器提供...

为什么要选择GPU服务器?新加坡GPU服务器如何使用?

难以想象的、不断增长的信息规模使系统能够应对材料的处理。GPU服务器的存在是为了解决一个严重的问题。所有资源密集型进程都可能归功于这些带有GPU的系统。许多公司使用这些系统。它们有助于3D建模、挖掘、...

php之redis短线重连案例讲解

php redis断线重连,pconnect连接失败问题介绍在swoole ,workerman等cli长连接模式下,遇到Redis异常断开,后面又开启的情况,一般得重新启动程序才能正常使用,本文介绍...

PHP7中新添特性整理

对于版本更新,在各个软件中都有所涉及,目的是针对现有版本不足的地方做一些优化。我们对于php也经历了不少的版本,在最近的php7增加了一些以往锁没有的特性,如类型声明、操作符和其他特性。下面我们就ph...