问题标签 [require-once]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
26 回答
651931 浏览

php - require、include、require_once 和 include_once 之间的区别?

在 PHP 中:

  • 我什么时候应该使用requirevs. include
  • 我什么时候应该使用require_oncevs. include_once
0 投票
5 回答
704 浏览

php - 如果我希望我的网站在且仅当菜单正确加载时才需要加载 PHP 的 require_once() 吗?

我有点困惑。

我会将菜单的所有 HTML 放在一个 .php 文件中,并让引擎需要它,对吗?

0 投票
4 回答
2230 浏览

php - 为低磁盘 i/o 优化 PHP require_once?

Q1) 我正在设计一个CMS(-谁不是!)但优先考虑缓存。从字面上看,一切都被缓存了。数据库行、数据库 ID 查询、配置数据、已处理数据、已编译模板。目前它有两层缓存。

第一个是操作码缓存或内存缓存,例如 apc、eaccelerator、xcache 或 memcached。如果在那里找不到条目,​​则在二级慢速缓存中搜索它,即 php 包含。

操作码缓存实际上是否比对其中包含 var_export 数据数组的 php 文件执行 require_once 更快?我的测试没有定论,因为我的开发箱(XAMPP 的 5.3)在安装上述任何程序时不断抛出错误。

Q2) CMS 有许多按需自动加载的辅助类,而不是加载所有文件。大多数情况下,每个都在它之前有一个要求,因此不需要进行自动加载,但这不是问题。因为一个页面脚本可以包含多达 50/60 个帮助文件,所以我有一种感觉,如果站点处于压力之下,它会因为所有的 i/o 而崩溃。暂时忽略有输出缓存可以消除对我将要建议的内容的需求,并且操作码缓存也会使这个问题变得没有意义。我试图做的是将脚本执行所需的所有帮助文件加入一个文件中。这是可以实现的并且运行良好,但是它具有显着增加内存使用量的副作用,即使在技术上使用相同的代码也是如此。

您对此有何想法和看法?

0 投票
3 回答
192 浏览

php - Require_once 外部变量并与 php 类中的其他函数共享这些变量

我在我的 php 类中有一个带有一些变量的外部文件,并与我的类的所有函数共享它们:

vars.inc:

类.php:

但它不起作用:$a var 未定义

我能怎么做?

谢谢大家

0 投票
3 回答
1126 浏览

php - php中的require_once

我有一个 php 文件,它有一个 require_once 语句(?)这个文件然后包含在其他 2 个 php 文件中,一个 php 文件在一个子目录中,所以布局是这样的(“file1”和“file2”包含文件“包括”,其中需要一次“必需”)#

如何从“包含”文件中引用“必需”文件,以便它适用于 file1 和 file2?

0 投票
4 回答
9956 浏览

php - PHP中require_once的范围是什么?

简单的问题:范围是require_once全局的吗?

例如:

当调用 foo 时,它会重新解析 baz.php 吗?或者它是否依赖于主 php 文件中已经需要的文件(类似于为同一个包含文件连续调用 require_once 两次)?

我之前看过这个帖子,但它并没有完全回答这个问题:

应该 require_once "some file.php" ; 出现在文件顶部以外的任何地方?

谢谢你的帮助!

0 投票
1 回答
309 浏览

php - PHP Class在文件中找到Class文件但没有找到Class

我在一个文件中定义了一个抽象超类,在另一个文件中定义了一个子类。我需要超类文件和堆栈跟踪报告来查找包含它。

但是,当它到达“扩展”行时,它会返回一个错误:Fatal error: Class 'HTMLBuilder' not found in View/Markup/HTML/HTML4.01/HTML4_01Builder.php on line 7

刚才我使用了另一个使用工厂的类树。我刚刚在工厂和消费者之间添加了构建器层。工厂层在包含和依赖方面看起来几乎完全相同。

所以这让我觉得我一定做了一些愚蠢的事情,导致 HTMLBuilder.php 文件没有被正确包含或正确解释等等。

这是完整的堆栈跟踪(路径略有改变):

这是有问题的代码:

父类(视图/标记/HTML/HTMLBuilder.php):

子类,(查看/标记/HTML/HTML4.01/HTML4_01Builder.php):

0 投票
6 回答
648 浏览

php - 如何加快 1800 行 PHP 包含?它使我的页面加载速度降低到 10 秒/次

我设计了我的代码,将所有重要的函数放在一个现在有 1800 行长的 PHP 文件中。

我在其他 PHP 文件(例如 AJAX 处理器)中使用简单的“require_once("codeBank.php")”来调用它。

我发现加载所有这些函数大约需要 10 秒,即使我只有几个全局数组和一堆其他函数。例如,主要的 AJAX 处理器代码需要 8 秒来进行简单的语法验证(其操作函数存储在 codeBank.php 中)。

当我注释掉 require_once 时,我的 AJAX 响应时间从 10 秒加速到 40 毫秒,所以很明显 PHP 正在尝试对这 1800 行函数做一些事情。即使安装了 APC,这也是令人惊讶的。

我应该怎么做才能让我的代码速度回到低于 100 毫秒的水平?我是否无法以某种方式获得缓存的好处?我是否需要将单个功能库文件切割成不同的部分?我还可以做其他一些微妙的事情来缩短我的响应时间吗?

或者除此之外,还有哪些工具可以进一步挖掘哪些 PHP 操作遇到了减速带?

===========================

[编辑] 已解决。

===========================

正如你们中的许多好心人所指出的那样,仅仅拥有一个 1800 行的 php 函数库会导致速度变慢,这没有任何合乎逻辑的理由。实际发生的情况是,我有一个调试行正在调用其中一个较长的 API 调用函数。每当我包含 PHP 文件时,我都是从远程查询数据构建一个完整的数据结构。

一旦我杀了那条线,一切都回到了快速的 30 毫秒响应。让我感到奇怪的是,每次调用 AJAX 脚本时,require_once() 都会打开 php 文件。但那是我走样了,忘记了每次 AJAX 脚本完成时它都会关闭并且每次都重新打开和重新编译。

0 投票
4 回答
9719 浏览

php - 包括、要求和要求一次

今天我尝试包含返回对象的文件。我总是使用 require_once,但是现在我注意到它的奇怪行为。

文件 main.php

文件 index.php

结果

为什么会这样?我认为 require 和 require_once 是一回事,只有 require_once 更安全,因为它不会重复包含。

谢谢。

编辑:

但是当我使用require_once 时,我也会得到 bool(true)。所以 require_once 只返回包含的结果,而不是它的内容?

编辑2:

哈哈。我没有注意到,早些时候我在我的类中需要这个文件,它是在代码执行之前创建的 ($this->file = require_once("langs/$name/main.php");)

所以 require_once 可以正常工作。多谢你们!

0 投票
2 回答
1040 浏览

php - 我们应该使用 require_once 代替标头位置吗?

我有这样的事情:(如果此页面需要用户登录)

在 loginFrm.php 中,我们这样做:

在这个页面中,他们说我们应该改用这样的东西:

这对我不起作用,会话变量现在包含包含的页面,而不是当前页面。

你有什么想法?