PHP有时会忽略函数重新声明吗?

PHP有时会忽略函数重新声明吗?,php,compiler-errors,redeclare,redeclaration,Php,Compiler Errors,Redeclare,Redeclaration,我和几个朋友在一个网站上工作,最近,用户抱怨一个相当重要的功能除了返回一个空白页面什么也不做。这只会发生在一些用户身上,而其他用户可以很好地使用它 我查阅了调试输出,结果发现一个函数被声明了两次。一次出现在该功能的主页(foo.php)中,一次出现在一个文件中,该文件获得了require\u Once'ed。显然,我现在正在修复它的正确路径上,但让我困惑的是,许多人在访问该页面时确实没有遇到这个问题。两个函数声明是相同的;这些实体似乎是从一个文件复制粘贴到另一个文件的。这些函数声明都不是有条件的

我和几个朋友在一个网站上工作,最近,用户抱怨一个相当重要的功能除了返回一个空白页面什么也不做。这只会发生在一些用户身上,而其他用户可以很好地使用它

我查阅了调试输出,结果发现一个函数被声明了两次。一次出现在该功能的主页(
foo.php
)中,一次出现在一个文件中,该文件获得了
require\u Once
'ed。显然,我现在正在修复它的正确路径上,但让我困惑的是,许多人在访问该页面时确实没有遇到这个问题。两个函数声明是相同的;这些实体似乎是从一个文件复制粘贴到另一个文件的。这些函数声明都不是有条件的;它们都应该经常发生


有没有人知道PHP将能够处理我的错误并使页面工作,尽管这个致命错误?

< P>对不起,PHP永远不能忽略致命错误或函数重声明,因为在这种情况下,PHP会混淆哪些函数声明要考虑,是使用旧声明还是使用新声明

  • 致命错误意味着,有一些东西是如此的错误,以至于PHP对于下一步该做什么感到困惑,因此正确地做它是您的工作

  • 抱歉,PHP不会试图找出两个或多个声明是否相同,然后忽略其中一个。如果必须这样做,已经很慢的PHP将变得更慢。因此,为了社区的利益,你应该考虑编写一个正确的代码,而不是要求PHP解释器为你纠正这个问题。


  • 对不起,PHP永远不能忽略致命错误或函数重声明,因为在这种情况下,PHP会混淆哪些函数声明要考虑,是否使用旧的声明或新的声明。
    • 致命错误意味着,有一些东西是如此的错误,以至于PHP对于下一步该做什么感到困惑,因此正确地做它是您的工作

    • 抱歉,PHP不会试图找出两个或多个声明是否相同,然后忽略其中一个。如果必须这样做,已经很慢的PHP将变得更慢。因此,为了社区的利益,你应该考虑编写一个正确的代码,而不是要求PHP解释器为你纠正这个问题。



    可能是您的函数声明类型是公共的、私有的或受保护的,因此您可能不会侥幸得到致命错误,因为据我所知,php不允许以任何方式重新声明函数。

    可能是您的函数声明类型是公共的,私有的或受保护的,这样您可能不会侥幸得到致命错误,因为据我所知,php不允许以任何方式重新声明函数。

    首先使用
    require\u一次性解决所有问题
    ,根据访问的页面,可能会出现页面包含特定文件一次的情况,正如在文章中所说,我已经在使用require_once.PHP不允许函数声明多次(在相同的范围内)。有些访问者可能会有不同的想法,不会大喊大叫。也许值得研究一下这些用户的不同之处。它只会发生在这些人身上是有原因的。例如,他们可能是管理员,并且只有当该人员具有相关访问权限时才包含脚本。我自己测试过,dev。使用我自己的帐户,它工作正常。使用测试帐户,它会显示一个空白页面。首先使用
    require\u once
    修复所有问题,根据访问的页面,可能会出现页面包含特定文件一次或多次的情况。正如在文章中所述,我已经在使用require\u once.PHP不允许多次(在相同范围内)进行函数声明。有些访问者可能会有不同的想法,不会大喊大叫。也许值得研究一下这些用户的不同之处。它只会发生在这些人身上是有原因的。例如,他们可能是管理员,并且只有当该人员具有相关访问权限时才包含脚本。我自己测试过,dev。使用我自己的帐户,它工作正常。通过一个测试帐户,它显示了一个空白页面。我知道这一点,我并不是想让PHP解决我的问题,正如你在原始帖子中看到的那样。PHP目前在某些情况下忽略了这一致命错误,我试图了解它为什么会这样做。通过详细调试和检查错误日志,您可以轻松了解这一点。它的编程和任何东西都可以在编程中编程!如果它的空白,意味着它是一个错误,如果您还没有在文件中为PHP错误启用错误登录,那么您应该考虑这样做。不可能。这是另外一回事。@linuxeasy:我确实在我们网站的开发部分启用了错误日志;这就是我发现函数正在被重新声明的原因。对于普通用户,错误不会显示,这会导致一个空页面。我也经历过这种情况。PHP遇到第二个声明,在内部将其视为错误,但不做其他任何事情。我知道这一点,我也不是在寻求一种让PHP解决我的问题的方法,正如你在最初的帖子中看到的那样。PHP目前在某些情况下忽略了这一致命错误,我试图了解它为什么会这样做。通过详细调试和检查错误日志,您可以轻松了解这一点。它的编程和任何东西都可以在编程中编程!如果它的空白,意味着它是一个错误,如果您还没有在文件中为PHP错误启用错误登录,那么您应该考虑这样做。不可能。这是另外一回事。@linuxeasy:我确实在我们网站的开发部分启用了错误日志;这就是我发现函数正在被重新声明的原因。对于普通用户,错误不会显示,这会导致一个空白页面