【问题标题】:When would a script be included twice in PHP? [duplicate]一个脚本何时会在 PHP 中包含两次? [复制]
【发布时间】:2013-12-09 15:17:52
【问题描述】:

我知道include_oncerequire_once 只允许被调用的脚本运行一次。我的问题是:如果我不使用_once,它会一直运行多次吗?默认情况下它会运行多次吗?我搜索了答案,但没有找到。

【问题讨论】:

标签: php include


【解决方案1】:

include 每次编写时运行一次。使用include_once的意义在于你可以做到

include "myfile.php"; // Include file one time
include "myfile.php"; // Include file again

这是完全合法的,在某些情况下您会想要这样做。

问题是,例如,如果您在此文件中定义一个函数,php 会抱怨您不能多次定义该方法(因为该名称已被占用)。

include_once 确保不会多次包含同一个文件,所以如果您这样做:

include_once "myfile.php"; // Include the file one time
include_once "myfile.php"; // This is ignored

...只执行一个包含。

【讨论】:

    【解决方案2】:

    这并不是说它运行了多次,但是如果您的文件包含多个不同的内容,并且其中一个内容包含其他已包含的内容之一,那么您会让它们被包含多次,这可能很糟糕。

    【讨论】:

      【解决方案3】:

      如果您不包含_once,它将运行您在脚本中调用它的次数。没有默认的运行次数(不知何故,我感觉你认为它可能会单独运行多次,但没有) - 一次包含 = 一次运行。

      【讨论】:

        【解决方案4】:

        是的,如果您使用include 而不是include_once(或require 而不是require_once),如果您第二次请求相同的文件,将包含并执行第二次指定的文件。

        这对于引用您需要在包含页面中执行的通用代码很有用,这与包含文件的正常原因相反,即声明函数和类。前者是一种古老的编程技术。

        【讨论】:

        • 你不是说它可以被第二次收录
        猜你喜欢
        • 2014-07-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-07
        • 2021-01-10
        相关资源
        最近更新 更多