IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

再谈php的include和include_once(include和require_once)

Zhang Jiuan' Notes 2010-03-12 13:37:52 累计浏览 3,386 次
本机暂存

为了说明问题,我们看如下三个php文件:
//file: functions.php
require_once(’my_once.php’);
require_once(’my_once.php’);
function test()
{
require_once(’my_unonce.php’);
//require(’my_unonce.php’);
}

test();
test();

//file:my_once.php
printf(”%s\n”, ‘my_once’);

//file: my_unonce.php
printf(”%s\n”, ‘my_unonce’);

好,现在我们做一下测试:
php functions.php
输出结果如下:
my_once
my_unonce
这与我们期望的结果是不一致的,因为我们期望调用两次test函数,
即让test做两遍事情,但事实上只做了一次。
我们对functions.php改一下,require_once改成require(函数内部)
//file: functions.php
require_once(’my_once.php’);
require_once(’my_once.php’);
function test()
{
//require_once(’my_unonce.php’);
require(’my_unonce.php’);
}

test();
test();
再试一下,输出结果如下:
my_once
my_unonce
my_unonce
正是我们期望的结果。
时常听人说,即然有了require_once就不要再使require了,实不正
确的,各有各的用处点吧。

另外需要说明的是,实际效率也是不同的,require要比require_once快
好多。

同分类推荐文章

  1. Go 语言技能:AI 时代的 Go 开发工具链 (2026-06-28 18:00:00)
  2. 等了十年的 Go 链式管道,终于来了:seq 让你像写 Scala 一样写 Go (2026-06-25 18:38:18)
  3. Go 实验特性详解 (2026-06-21 10:05:27)

查看更多 后端 文章 →

建议继续学习

  1. 使用gettext来支持PHP的多语言 (累计阅读 39,274)
  2. WordPress插件开发 -- 在插件使用数据库存储数据 (累计阅读 29,167)
  3. Paypal接口详细代码(PHP版,非API接口) (累计阅读 19,415)
  4. 我的PHP,Python和Ruby之路 (累计阅读 13,153)
  5. include(“./file.php”)和include(“file.php”)区别 (累计阅读 12,795)
  6. 15个最好的免费开源电子商务平台 (累计阅读 12,543)
  7. Redis消息队列的若干实现方式 (累计阅读 12,089)
  8. 到底什么是MVC? (累计阅读 11,897)
  9. 整理了一份招PHP高级工程师的面试题 (累计阅读 11,732)
  10. Rolling cURL: PHP并发最佳实践 (累计阅读 11,489)