问题标签 [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 投票
14 回答
72576 浏览

php - 为什么 require_once 不好用?

我读到的关于更好的 PHP 编码实践的所有内容都一直在说不要require_once因为速度而使用。

为什么是这样?

做同样事情的正确/更好的方法是什么require_once?如果重要的话,我正在使用 PHP 5。

0 投票
4 回答
7727 浏览

php - 如何调整 PHP 真实路径缓存?

最新版本的 PHP 有一个文件名缓存,用于了解文件的真实路径,require_once()并且include_once()可以利用它。

您可以在php.ini中设置一个值来设置缓存的大小,但我不知道如何判断大小应该是多少。默认值为 16k,但我看不出我们正在使用多少缓存。文档含糊不清:

确定 PHP 使用的真实路径缓存的大小。在 PHP 打开许多文件的系统上应该增加这个值,以反映执行的文件操作的数量。

是的,我可以增加允许的缓存数量,并使用ab其他测试或其他测试来运行测试,但我想要一些更内省的东西,而不仅仅是从远处计时。

0 投票
4 回答
9532 浏览

php - 使用静态工厂模式时包含 PHP 库的最佳方式是什么?

我的 PHP 库中有几个静态工厂模式。但是,内存占用正在失控,我们希望减少执行期间所需的文件数量。这是我们今天所处位置的一个示例:

这是不可取的,因为需要包含 Car.php 和 Truck.php,即使可能只需要其中一个。据我所知, require/include 及其 ..._once 变体包括与调用范围相同的库。这是真的?

如果是这样,我相信这会导致内存泄漏:

在我看来,在第二个示例中,即使使用了 require_once 风格,对 Create() 的多次调用也会因为调用的范围而导致多次请求。

这是真的?在诸如此类的示例中,在 php 中动态包含库的最佳方法是什么?

谢谢!

0 投票
2 回答
785 浏览

php - PHP/HTML/CSS:IE 在使用 require_once() 时表现得很奇怪

现在这是我在 PHP 中遇到过的最奇怪的问题。

除了一个之外,所有页面看起来都很正常;当我第一次看到这个问题时,我认为这是 IE 和样式表的常见问题之一(我在这个页面上有一个特定的 CSS 文件)。我试图排除 CSS 文件只是为了确保问题确实出在这个文件中,但事实并非如此。然后我以为我忘记关闭任何 HTML 标签,所以我多次检查代码,但似乎一切都正确。于是我开始把代码放在评论里,和IE比较,直到我意识到当我把下面的代码放在评论里时,页面本身表现正常:

这是一个有效的路径,并且该文件确实只包含一个带有函数的类 - 如果 MySQL 查询失败,除了 die() 之外没有任何输出。

在 IE 中看起来很奇怪的一些事情如下:

  • 容器通常居中,现在位于左侧。
  • 带有repeat-x 的背景并没有一路走下去。
  • 菜单中的悬停功能不起作用。

任何人?

编辑:我试图将 adjacency.php 包含在另一个文件中,并且发生了同样的问题。

0 投票
3 回答
6476 浏览

php - require_once 被忽略

Windows 上 php 的奇怪问题...我的应用程序加载了一个“核心”文件,该文件加载了一个设置文件、注册自动加载、初始化等。在核心文件的顶部我有 include_once("config.php"); 这适用于当前目录中的任何内容,如果我从单独的目录中包含核心文件,尽管它只是默默地忽略了配置文件的包含......以前有人见过吗?

/webroot/core.php

/webroot/config.php

/webroot/admin/index.php

我的理解是文件操作是相对于发出请求的文件的目录,require_once(“config.php”)不应该选择相对于core.php的文件吗?这段代码就像我在 mac 或 Linux 上所期望的那样工作,但在 windows 上根本不工作,(如果我更改使用完整路径或 ../ 的要求,它可以工作)

真正的疯狂是 require_once("config.php") 没有抛出任何错误,但里面的代码没有被执行!

0 投票
2 回答
1078 浏览

php - PHP 和一些全局变量

我使用$Loggerintemplates/list.php和 in widgets/list.php$Templates我用在/widgets/list.php.

上面的代码抛出这个错误:

注意:未定义变量:Logger.../templates/list.php第 99 行致命错误:在第 99 行调用 toLog()非对象上 .../templates/list.php 的成员函数

UPD 这是第 99 行:

0 投票
2 回答
1797 浏览

php - PHP: Failed to open required file that exists

I am trying to include the Zend_Service_Amazon_S3 file by using

I have also included in the include path the directory where the entire Zend library is located, AND the installation is inside Zend Server CE (which includes the Zend Framework by default). However, no matter what I try, I only get the following for my troubles:

Fatal error: require_once() [http://php.net/function.require]: Failed opening required 'Zend/Server/Amazon/S3.php' (include_path='/usr/local/zend/apache2/htdocs:/usr/local/zend/apache2/htdocs/app/:.:/usr/local/zend/share/ZendFramework/library:/usr/local/zend/share/pear:/usr/local/zend/apache2/htdocs/app/vendors') in /usr/local/zend/apache2/htdocs/app/models/item.php on line 3

The Zend/Service/Amazon/S3.php is located under the paths:

  • /usr/local/zend/share/ZendFramework/library
  • /usr/local/zend/apache2/htdocs/app/vendors
0 投票
1 回答
211 浏览

php - 当 Flash 程序调用 PHP 脚本时找不到文件

我现在正在开发一个程序,该程序调用位于/var/www/vhosts/company/httpdocs 中的脚本mail.php。mail.php 正在尝试执行require_once dirname(__FILE__).'/../pear/Mail.php'smtp 发送,但require_once失败了。我的 PEAR 目录位于 /var/www/vhosts/company/pear。然后我尝试将 /var/www/vhosts/company/pear 添加到 include_path 但require_once仍然失败。

我决定退后一步,将 mail.php 替换为一个简单的脚本,它将file_exists(dirname(__FILE__).'/../pear/Mail.php')结果打印到日志文件中。当我独立运行脚本时,它工作正常并返回 1。当 flash 程序运行它时,它什么也没返回。dirname(__FILE__).'/../pear/Mail.php'无论我是独立运行脚本还是闪存文件运行它,打印出来的结果都是一样的。我还在 Mail.php PEAR 文件上尝试了 chmod 777 ,但没有做任何事情。

关于发生了什么的任何想法?

0 投票
5 回答
45931 浏览

php - 包含路径解析如何在 require_once 中工作?

当我遇到一个奇怪的情况时,我正在用 PHP 编写一个 Web 应用程序。为了说明我的问题,考虑一个这种结构的网络应用程序:

这些文件的内容:

索引.php:

f1.php:

f2.php:空白

现在,当我尝试在浏览器中打开 index.php 时,出现此错误:

我有什么明显的遗漏吗?包含路径如何在 PHP 中工作?


在我问这个问题之前,我尝试过尝试并找出答案。我设置了另一个测试,如下所示:

索引.php:

f1.php:

f2.php:空白

令我惊讶(和完全混乱),这很好!

那么,路径解析背后的秘密是什么?

PS我看到了这个问题,但它仍然没有回答我在这里所说的第二种情况。

0 投票
2 回答
15567 浏览

php - php require_once 没有按我想要的方式工作.. 相对路径问题

我在为 require_once 分配相对路径时遇到问题。我确定这很简单,我没有看到...

文件夹目录结构一级:站点二级:包含二级:类

所以... site/include/global.php <--这是从 site/class/db.php 调用函数 autoload 的地方

当我尝试使用

我得到:

警告:require_once(../class/db.php)[function.require-once]:无法打开流:没有这样的文件或目录

致命错误:require_once() [function.require]:无法打开所需的 '../class/db.php' (include_path='.;./includes;./pear')

我究竟做错了什么?如果我将 global.php 放入类文件夹中,它会正常工作,所以我假设这是我对导致问题的相对路径的理解不佳..

谢谢