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

在上一篇《聊聊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

代码:

<?php

// 文件内容

echo "欢迎来到PHP中文网!";

?>

文件名:index.php

代码:

<?php   

// 包括文件

require_once('test.php');

require_once('test.php');

?>

输出:

欢迎来到PHP中文网!

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

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

有两点:

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

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

文件名:my_file.php

示例:

<?php

// 文件内容

$var = 'PHP';

?>

文件名:check.php

<?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

<?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()内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 函数中使用require_once问题深入探讨 优雅的配置文件定义方法推荐

    背景 在项目中很多人喜欢在配置文件使用数组来配置各个配置项,如等级的配置level.config.php: 复制代码 代码如下: <?php $g_levelConfig = array(                     '1'=>'新手',                     '2'=>'进阶',                 ); 因为项目不同模块经常会相互调用方法,会出现重复包含一个文件的情况,为了避免错误,大家一般都会用require_one,而且经常会在函数里包含

  • require(),include(),require_once()和include_once()区别

    我把这两个语句放在一起介绍,读者可以比较学习. 1.require()语句 require()语句用于指定的文件代替语句本身,就象C语言中的include()语句一样.如果php配置文件php.ini中的URL fopen wrappers 是打开的(默认情况下是打开的),就可以使用URL来指定文件的位置从而实现远程文件的调用. 有一点就是使用require()和include()语句时要特别的注意.那就是在被包含的文件中,处理器是按照html模式来解释其中的内容的,处理完被包含的内容后又恢复到

  • 简单谈谈PHP中的include、include_once、require以及require_once语句

    1.include语句 使用include语句可以告诉PHP提取特定的文件,并载入它的全部内容 <?php inlude "fileinfo.php"; //此处添加其他代码 ?> 2.include_once语句 每次使用include语句时,它都会重新将请求的文件导入,即使这个文件已经被导入过.例如,假定fileinfo.php文件包含许多函数,我们使用include语句将他导入到现有的文件中,然后我们又导入了一个包含fileinfo.php的文件,通过嵌套,我们已经将

  • require(),include(),require_once()和include_once()的异同

    require()和include()有许多相似之处,也有些不同.理解它们的不同点非常重要,否则很容易犯错误. 我把这两个语句放在一起介绍,读者可以比较学习.  1.require()语句    require()语句用于指定的文件代替语句本身,就象C语言中的include()语句一样.如果php配置文件php.ini中的URL fopen wrappers 是打开的(默认情况下是打开的),就可以使用URL来指定文件的位置从而实现远程文件的调用.    有一点就是使用require()和incl

  • PHP中include/require/include_once/require_once使用心得

    最近一直在抽时间来学习PHP,据说PHP是世界上最好的语言,于是各大论坛炸开了锅!哈哈,我们这里不是来讨论哪门语言是最好的语言,我们是在学习PHP中经常使用到的文件引入的四种方式的特点及区别! 相信大家在使用PHP时经常看到include a.php.include_once a.php.require a.php或者require_once a.php类似这样的写法吧? 我们一起来学习和总结一下这几个语句的作用及特点! include 使用方法: include "test.php"

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

    在上一篇<聊聊PHP中die()和sleep()函数的用法>中给大家简单介绍了die()和sleep()函数的使用方法,感兴趣的朋友可以去学习了解一下~ 本文将告诉你PHP中require_once()为什么不好用! 不过在说它不好用之前,我们先开看看require_once()函数的定义和用法. require_once()函数是PHP中的内置函数,当我们想要将一个PHP文件引入到另一个文件中时,例如当我们需要在PHP脚本中多次引入一个文件时,它就非常有用了.它用于检查文件是否被包含了不止一

  • 简单聊聊C++中回调函数的实现

    目录 前言 1 函数指针 2 C风格的回调函数 3 C++风格的回调函数 4 多态类型的回调函数 5 通过function和bind实现回调函数功能 6 总结 前言 回调函数其实和普通函数一样,不同的是普通函数是直接在程序中进行调用,回调函数是通过函数指针将它的地址传递给其它函数,函数执行在其它函数体执行,这个过程就叫做回调.所以,C++回调函数也并非高大上的技术,它的原理无非就是函数指针或者对象的传递. 回调函数机制: 1.定义一个函数(普通函数即可): 2.将此函数的地址注册给调用者: 3.

  • 聊聊PHP中的 === 运算符为什么比 == 快

    在上一篇<聊聊PHP中require_once()函数为什么不好用>中给大家介绍了PHP中require_once()为什么不好用的原因,感兴趣的朋友可以去阅读了解一下~ 那么本文将给大家介绍PHP中的===运算符为什么比==快? PHP中的===和==运算符,这两个运算符属于PHP中的比较运算符. ===运算符称为绝对等于,==运算符称为等于. 语法示例: $a == $b,如果在类型转换后 $a 等于 $b,则为 TRUE: $a === $b,如果 $a 等于 $b,并且两者的类型相同,

  • 聊聊PHP中die()和sleep()函数的用法

    在上一篇<聊聊PHP中删除字符串的逗号和尾部斜杠的方法>给大家介绍了PHP删除字符串中的逗号以及尾部斜杠的方法,感兴趣的朋友可以去学习了解一下~ 本文也将给大家通过示例来讲解标题所述"PHP中die()和sleep()函数的用法". 一.关于die()函数的用法 die()是在PHP一个内置功能.它用于打印消息并退出当前的 php 脚本.相当于PHP 中的exit()函数. 语法很简单,如"die($message)" die()函数只接受一个参数,并且

  • 一起聊聊C++中的智能指针

    目录 一:背景 二:关键词解析 1. auto_ptr 2. auto_ptr 多引用问题 一:背景 我们知道 C++ 是手工管理内存的分配和释放,对应的操作符就是 new/delete 和 new[] / delete[], 这给了程序员极大的自由度也给了我们极高的门槛,弄不好就得内存泄露,比如下面的代码: void test() { int* i = new int(10); *i = 10; } int main() { test(); } 这段代码因为用了 new 而忘了 delete,

  • PHP中的函数声明与使用详解

      函数 1.  函数名是标识符之一,只能有字母数字下划线,开头不能是数字: 函数名的命名,必须符合"小驼峰法则"FUNC(),func(),Func(); 函数名不区分大小写; 函数名不能与已有函数同名,不能与内置函数名同名: 2.   function_exists("func");用于检测函数是否已经声明: 注意传入的函数名,必须是字符串格式,返回结果为true/false: echo打印时,true为1,false不显示:               [ph

  • PHP中spl_autoload_register()函数用法实例详解

    本文实例分析了PHP中spl_autoload_register()函数用法.分享给大家供大家参考,具体如下: 在了解这个函数之前先来看另一个函数:__autoload. 一.__autoload 这是一个自动加载函数,在PHP5中,当我们实例化一个未定义的类时,就会触发此函数.看下面例子: printit.class.php: <?php class PRINTIT { function doPrint() { echo 'hello world'; } } ?> index.php <

  • C++ 中assert()函数用法总结

    C++ 中assert()函数用法总结 assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义: #include <assert.h> void assert( int expression ); assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行. 请看下面的程序清单badptr.c: #include <std

  • PHP中spl_autoload_register函数的用法总结

    spl_autoload_register(PHP 5 >= 5.1.2)spl_autoload_register - 注册__autoload()函数 说明bool spl_autoload_register ([ callback $autoload_function ] )将函数注册到SPL __autoload函数栈中.如果该栈中的函数尚未激活,则激活它们.如果在你的程序中已经实现了__autoload函数,它必须显式注册到__autoload栈中.因为spl_autoload_reg

  • python3中eval函数用法使用简介

    python中eval函数的用法十分的灵活,这里主要介绍一下它的原理和一些使用的场合. 下面是从python的官方文档中的解释: The arguments are a string and optional globals and locals. If provided, globals must be a dictionary. If provided, locals can be any mapping object. The expression argument is parsed a

随机推荐