当前位置: 首页 > 面试题库 >

参考-此错误在PHP中意味着什么?

刘兴修
2023-03-14
问题内容

这是什么?
这是有关警告,错误和注意事项的许多答案,这些警告,错误和注意事项在您对PHP进行编程时可能会遇到,并且不知道如何解决它们。这也是一个社区Wiki,因此邀请所有人参与添加并维护此列表。

为什么是这样?
诸如“已发送标题”或“呼叫非对象成员”之类的问题经常在堆栈溢出中弹出。这些问题的根本原因总是相同的。因此,这些问题的答案通常会重复它们,然后向OP显示在特定情况下应更改的行。这些答案不会为网站增加任何价值,因为它们仅适用于OP的特定代码。具有相同错误的其他用户无法轻松地从中读取解决方案,因为他们过于本地化。令人遗憾的是,一旦您了解了根本原因,就可以轻松地修复错误。因此,此列表试图以一种通用的方式解释该解决方案。

我该怎么办?
如果您的问题已被标记为与此问题的重复,请在下面找到您的错误消息,并将修复程序应用于您的代码。答案通常包含进一步的链接,以进行调查,以免仅凭一般答案无法明确答案。

如果您想做出贡献,请添加“最喜欢的”错误消息,警告或通知,每个答案一个,简短说明其含义(即使只是在其手册页上突出显示术语),可能的解决方案或调试方法以及现有有价值的问答列表。此外,请随时改善任何现有答案。


问题答案:

警告:无法修改标头信息-标头已发送
当脚本尝试将HTTP标头发送到客户端但之前已经有输出时,会发生此情况,这导致标头已经发送到客户端。

这是一个E_WARNING并且不会停止脚本。

一个典型的示例是这样的模板文件:

<html>
    <?php session_start(); ?>
    <head><title>My Page</title>
</html>
...

session_start()函数将尝试将带有会话cookie的标头发送到客户端。但是PHP在将<html>元素写入输出流时已经发送了标头。您必须将其session_start()移到顶部。

您可以通过在代码触发警告之前检查各行并检查其输出位置来解决此问题。将任何标头发送代码移到该代码之前。

一个经常被忽略的输出是PHP关闭之后的换行符?>?>当它是文件中的最后一件事时,这被认为是标准做法。同样,此警告的另一个常见原因是,如果开头之前<?php有空格,行或不可见字符,则导致Web服务器发送标头和空白/换行符,因此当PHP开始解析时将无法提交任何标题。

如果文件中包含多个<?php ... ?>代码块,则文件之间不应有任何空格。(注意:如果您具有自动构造的代码,则可能有多个块)

还要确保您的代码中没有任何字节顺序标记,例如,当脚本的编码为带有BOM的UTF-8时。



 类似资料:
  • ELIFECYCLE是什么意思? 我在寻找两个答案中的一个:ELIFECYCLE是什么意思?(或者)为什么我的应用程序代码中出现错误?

  • 我最近偶然发现了这个代码: 我以前从未见过这个关键字。试图运行我得到的代码 分析错误:语法错误,第x行出现意外的T_变量 那么这个关键字是什么?它甚至是有效的PHP吗?如果是,我该如何使用它?

  • 问题内容: 乔什·布洛赫(Josh Bloch)在“ 有效的Java ”项目“项目22:相比于非静态偏爱静态成员类”中,说: 非静态成员类的每个实例都与其包含类的封闭实例隐式关联。在非静态成员类的实例方法中,可以使用限定的this构造在封闭实例上调用方法或获取对封闭实例的引用。 他所说的“ 合格的结构” 是什么意思? 问题答案: 没有限定词,将递归。使用限定符时,将调用封闭实例的方法。

  • 我是java编程新手,不知道这些错误的含义: 源代码: 程序的名称与类的名称相同,我找到了解决方案。当我删除类中的public player和playgame时,程序没有出现错误,但我仍然无法理解错误的含义。请帮帮我

  • 问题内容: 我从未见过这样的代码: 一样吗? 编辑 如果该类是继承的,它指向哪个类? 问题答案: 指向其编写所在的类。 因此,如果您的getInstance方法位于类名中,则以下行: 将做与: 编辑:评论后,还有更多信息。 如果您有两个相互扩展的类,则有两种情况: 在子类中定义 在父类中定义 第一种情况看起来像这样(在此示例中,我已经删除了所有不必要的代码-您必须将其重新添加来获得单例行为)*: