参考-这个错误在PHP中是什么意思?

这是什么

这是一些关于在编写PHP时可能遇到的警告、错误和注意事项的答案,您不知道如何修复它们。这也是一个社区Wiki,因此邀请所有人参与添加和维护此列表

为什么会这样

问题如「;“已发送邮件头”;或;调用非对象的成员;堆栈溢出时经常弹出。这些问题的根本原因总是一样的。因此,这些问题的答案通常会重复这些问题,然后在特定情况下向OP显示要更改的行。这些答案不会给网站增加任何价值,因为它们只适用于OP的特定代码。具有相同错误的其他用户无法轻松从中读取解决方案,因为他们太本地化了。这是可悲的,因为一旦您了解了根本原因,修复错误就变得微不足道了。因此,本列表试图以一种通用的方式解释解决方案

我在这里该怎么办

如果您的问题已被标记为此问题的副本,请在下面找到您的错误消息,并对代码应用修复。答案通常包含进一步的链接,以防仅仅从一般答案中不清楚

如果你想捐款,请加上你的;“最喜欢的”;错误消息、警告或通知、每个答案一条、简短描述其含义(即使只是在手册页面上突出显示术语)、可能的解决方案或调试方法以及现有Q&有价值的东西。此外,请随时改进任何现有答案

名单

  • 什么也没看见。这一页是空白的。(也称为白页/死亡画面)
  • 代码没有运行/我的PHP代码的某些部分看起来是输出的
  • 警告:无法修改标题信息-标题已发送
  • 警告:mysql_fetch_array()希望参数1是资源,布尔值给定a.k.a.
    警告:mysql\u fetch\u array():提供的参数不是有效的mysql结果资源
  • 警告:[函数]要求参数1为资源,布尔值为给定值
  • 警告:[功能]:无法打开流:[原因]
  • 警告:open_basedir限制生效
  • 警告:被零除
  • 警告:字符串偏移量“XXX”非法
  • 警告:count():参数必须是实现可计数的数组或对象
  • 分析错误:语法错误,意外的“[”
  • 分析错误:语法错误,意外的T_XXX
  • 分析错误:语法错误、意外的T_封装_和_空白
  • 分析错误:语法错误,意外的T_PAAMAYIM_NEKUDOTAYIM
  • 分析错误:语法错误,意外的’require_once’(T_require_once),预期函数(T_函数)
  • 分析错误:语法错误,意外的T_变量
  • 致命错误:允许的XXX字节内存大小已用尽(尝试分配XXX字节)
  • 致命错误:对非对象或null调用成员函数
  • 致命错误:调用未定义的函数XXX
  • 致命错误:无法重新声明XXX
  • 致命错误:无法在写上下文中使用函数返回值
  • 致命错误:AAA::BBB()的声明必须与CCC::BBB()的声明兼容’
  • 致命错误:不在对象上下文中使用$this
  • 致命错误:类闭包的对象无法转换为字符串
  • 致命错误:未定义的类常量
  • 致命错误:未捕获的TypeError:参数#n必须是给定的x、y类型
  • 注意:数组到字符串的转换
  • 注意:尝试获取非对象错误的属性
  • 注意:未定义的变量或属性
  • 注意:未定义索引
  • 注意:未定义的偏移量XXX[参考]
  • 注意:未初始化的字符串偏移量:XXX
  • 注意:使用未定义的常数XXX-假定为“XXX”
  • MySQL:您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解在第…行附近使用的正确语法
  • 严格标准:不应静态调用非静态方法[<class>:<method>]
  • 警告:函数要求参数X为布尔值/字符串/整数
  • HTTP错误500-内部服务器错误
  • 不推荐使用:不推荐使用带大括号的数组和字符串偏移访问语法

另见:

  • 参考-这个符号在PHP中是什么意思

警告:无法修改标题信息-标题已发送

当脚本尝试将HTTP头发送到客户端,但之前已经有输出,导致头已发送到客户端时发生

这是一个E_警告,它不会停止脚本

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

<html>
<?php会话_start();?>
<标题><标题>我的页面</title>
</html>
...

session\u start()函数将尝试使用会话cookie向客户端发送头。但是PHP在将<html>元素写入输出流时已经发送了头。您必须将session\u start()移到顶部

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

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

如果文件中有多个<?php…?>代码块,则它们之间不应存在任何空格。(注意:如果有自动构造的代码,则可能有多个块)

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

相关问题:

  • PHP已发送的标题
  • Stackoverflow上的所有PHP“标题已发送”问题
  • 字节顺序标记
  • 什么PHP函数创建输出

发表评论