Tag: debugging

如何在PHP中获取有用的错误消息?

我发现在PHP编程相当令人沮丧。 通常我会尝试运行这个脚本,然后回到空白屏幕。 没有错误信息,只是空的屏幕。 原因可能是一个简单的语法错误(错误的括号,缺less分号),或一个失败的函数调用,或完全是其他的东西。 弄清楚出了什么问题是非常困难的。 我最终评论了代码,在各处input“回声”声明等,试图缩小这个问题的范围。 但是肯定有更好的方法吧? 那么,有没有办法让PHP像Java那样产生有用的错误信息呢? 任何人都可以推荐良好的PHPdebugging技巧,工具和技术?

参考 – 这个错误在PHP中意味着什么?

这是什么? 这是关于在编程PHP时可能遇到的警告,错误和通知的一些答案,并且不知道如何解决。 这也是一个社区Wiki,所以每个人都被邀请参与添加和维护这个列表。 为什么是这样? 诸如“Headers already sent”或“调用非对象的成员”之类的问题在Stack Overflow上经常popup。 这些问题的根本原因总是一样的。 所以这些问题的答案通常会重复,然后向他们展示OP在他/她的特定情况下要改变哪条线。 这些答案不增加任何价值的网站,因为他们只适用于OP的特定代码。 具有相同错误的其他用户不能轻易地从中读取解决scheme,因为它们太本地化。 这是可悲的,因为一旦你明白了根本原因,纠正错误是微不足道的。 因此,这个列表试图以一般的方式来解释解决scheme。 我应该在这里做什么? 如果您的问题已被标记为重复,请在下面find您的错误消息,并将修复应用到您的代码。 答案通常包含进一步的调查链接,以防单独从一般答案中不清楚。 如果你想贡献,请添加你的“最喜欢的”错误信息,警告或通知,每个答案一个,简短的描述是什么意思(即使它只是突出显示手册页的条款),一个可能的解决scheme或debugging方法和有价值的现有问答清单。 此外,随时提高任何现有的答案。 列表 什么都看不到 该页面是空白的。 (也被称为白页/死亡屏幕 ) 代码不运行/看起来像我的PHP代码的部分输出 警告:不能修改标题信息 – 已经发送的标题 警告:mysql_fetch_array()期望参数1是资源,布尔给定 aka 警告:mysql_fetch_array():提供的参数不是有效的MySQL结果资源 aka 警告:mysqli_num_rows()期望参数1是mysqli_result,布尔给定 (或类似的变化) 警告: [函数]期望参数1是资源,布尔给定 警告: [function] :未能打开stream: [原因] 警告:有效的open_basedir限制 警告:除以零 警告:非法string偏移“XXX” parsing错误:语法错误,意外的'[' parsing错误:语法错误,意外的T_XXX parsing错误:语法错误,意外的T_ENCAPSED_AND_WHITESPACE parsing错误:语法错误,意外的T_PAAMAYIM_NEKUDOTAYIM parsing错误:语法错误,意外的'require_once'(T_REQUIRE_ONCE),期待函数(T_FUNCTION) parsing错误:语法错误,意外的T_VARIABLE 致命错误:允许XXX字节的内存大小用尽(试图分配XXX字节) 致命错误:调用一个非对象的成员函数 致命错误:调用未定义的函数XXX 致命错误:无法重新声明XXX 致命错误:不能在写入上下文中使用函数返回值 致命错误:AAA […]

PHP分析/语法错误; 以及如何解决它们?

每个人都会遇到语法错误。 即使有经验的程序员也会犯错。 对于新手来说,这只是学习过程的一部分。 但是,解释错误消息通常很容易,例如: PHPparsing错误:语法错误,在第20行的index.php中出现意外的“{” 意想不到的象征并不总是真正的罪魁祸首。 但是,行号给出了一个粗略的想法,从哪里开始寻找。 总是看代码的上下文 。 语法错误通常隐藏在前面提到的或 之前的代码行中 。 将您的代码与手册中的语法示例进行比较。 虽然不是每一个案件匹配其他。 然而,有一些通用的步骤来解决语法错误 。 这些参考文献总结了常见的陷阱: 意外的T_STRING 意外的T_VARIABLE 意外的'$ varname'(T_VARIABLE) 意外的T_CONSTANT_ENCAPSED_STRING 意外的T_ENCAPSED_AND_WHITESPACE 意外的$结束 意外的T_FUNCTION … 意外的{ 意外的} 意外的 意外) 意想不到的[ 意外] 意外的T_IF 意外的T_FOREACH 意外的T_FOR 意外的T_WHILE 意外的T_DO 意外的T_PRINT 意外的T_ECHO 意外的T_LNUMBER 意外的T_INLINE_HTML … 意外的T_PAAMAYIM_NEKUDOTAYIM … 意外的T_OBJECT_OPERATOR … 意外的T_DOUBLE_ARROW … 意外的T_SL … 意外的T_BOOLEAN_OR … 意外的T_BOOLEAN_AND … 意外的T_IS_EQUAL […]