7

我正在使用一些 php 代码,例如所有页面通用的数据库连接,所以我创建了一个包含 php 代码的 php 文件,然后我将这个文件包含在我的 HTML 代码中,所以我想知道包含的更好方法php 文件,更好的替代包含函数。我的示例代码在这里

<?php
    include "check_timeout.php";
    include "connect_to_db.php";
?>
<html>
<head>
    <title>Example</title>
</head>
<body>
<?php
    mysql_close($con);
?>
</body>
</html>

先感谢您。

4

2 回答 2

18

您有 4 个选项可供选择。

包括'yourfile.php';
include_once 'yourfile.php';
需要'yourfile.php';
require_once 'yourfile.php';

当然你也可以用"代替'。

除了微小的差异外,他们都会做同样的事情。

如果 yourfile.php 不存在,包含的将忽略这一事实,您的 php 页面将继续前进 - 没有任何致命错误。

另一方面,require 会产生致命错误。

如果您知道该文件在那里,那么您选择哪个文件没有区别。

至于带有 _once 后缀的选项,嗯,它们往往比没有 _once 后缀的选项慢。因为当您使用 include_once 或 require_once 时,PHP 将做一些额外的工作以确保这些文件真正包含一次 - 如果您不小心编码并且许多文件使用了许多包含,则可以保护您免受可能的双重包含情况,您可能会遇到同一文件被包含两次的情况。好吧,_once 选项会阻止这种情况。这种检查会带来一些处理成本。

我还注意到您使用 " 而不是 ' 作为文件分隔符。没有理由选择 " over ' 除非您将在文件中引用变量名,例如

$thefile = '你的文件.php; 包括“$thefile”;

那么从这4个中挑选哪些?这一切都取决于,如果你认为你确实需要强制 _once 问题,那么你选择 include_once 或 require_once,如果你认为不需要,那么你选择 include 或 require。至于包含与要求,这一切都归结为如果您的文件由于某种原因无法访问,您希望您的 PHP 脚本死掉还是继续。

如果您对一些速度测试感到好奇,这里有一个链接供您查看。 http://php.net/manual/en/function.require-once.php

我也在主题上发现了这一点。

理解 require 和 include 之间的区别 根据 PHP 手册,require 和 include “除了处理失败的方式外,在所有方面都是相同的”。但是,进一步阅读手册会发现另一个影响性能的非常细微的差异。使用 require 关键字时,在编译使用 require 关键字的文件时,会读入、解析和编译命名文件。编译包含 include 关键字的文件时,最初不会读入、解析和编译命名文件。只有当那行代码被执行时,文件才会被读取、解析和编译。如果您知道当前脚本中始终需要该命名文件,请仅使用 require 关键字。如果您可能使用它的功能,请改用 include。PHP 打开所有需要的文件,但仅根据需要打开包含的文件。此外,您还应该考虑分别使用 require_once 和 include_once 代替 require 和 include。在实践中,您更有可能真正想要 require_once 和 include_once 函数提供的功能,即使分别使用 require 和 include 关键字更为常见。有关详细信息,请参阅以下 PHP 手册页:include、include_once

来源: http: //www.stevengould.org/portfolio/developerWorks/efficientPHP/wa-effphp/wa-effphp-a4.pdf

于 2012-12-29T07:14:36.013 回答
6

始终使用requireor ,如果配置错误require_once,您将收到一个。E_COMPILE_ERROR

在性能方面,includerequire在功能上相同。

require本身只会与每个文件中包含的代码一样高效。

于 2012-12-29T07:08:40.770 回答