【发布时间】:2009-03-09 17:23:04
【问题描述】:
我正在使用 TextWrangler 来编辑 PHP 代码。我经常遇到代码在我的开发环境中只是显示为空白页的问题。有没有更好的方法来进一步定位我应该在代码中查找问题的哪个位置?
现在我只是在遇到此问题时手动运行每一行,但我猜有某种解决方案我无法找到它的名称..
【问题讨论】:
标签: php syntax text-editor
我正在使用 TextWrangler 来编辑 PHP 代码。我经常遇到代码在我的开发环境中只是显示为空白页的问题。有没有更好的方法来进一步定位我应该在代码中查找问题的哪个位置?
现在我只是在遇到此问题时手动运行每一行,但我猜有某种解决方案我无法找到它的名称..
【问题讨论】:
标签: php syntax text-editor
您应该确保您的开发 php.ini 文件包含:
display_errors = On
error_reporting = E_ALL
或
display_errors = On
error_reporting = E_ALL | E_STRICT
即使启用这些,有时内存不足错误也会导致空白页。
【讨论】:
将 php.ini error_reporting 设置为 E_ALL
display_error = On
error_reporting = E_ALL
您也可以在代码中执行此操作。
error_reporting(E_ALL);
或
ini_set('error_reporting', E_ALL);
你可以阅读更多关于error reporting here.
【讨论】:
在开发过程中,您应该始终将error reporting 设置为最高级别 (E_ALL/E_STRICT) 以报告每个错误。
【讨论】:
我已经为此苦苦挣扎了一段时间(学生在我的一些课程中学习 PHP),因为我尝试使用
ini_set('display_errors', 1);
按照建议(例如 Ullman 的 PHPv6 和 MySQL 5),但将其放在您的代码中并没有捕获任何解析错误。相反,我继续看到空白页。
PHP 手册网页中的comment 为我提供了设置原因的线索
display_errors = On
在php.ini中和添加不太一样
ini_set('display_errors', 1);
在您的 php 脚本的顶部。似乎 PHP 有一个 2 阶段操作,并在开始执行任何脚本文件之前完全解析脚本文件。如果由于缺少“;”而导致解析失败或“)”,然后是
ini_set('display_errors', 1);
被解析但从未执行,因此不会报告解析错误。 如果您无法更改 php.ini 设置,则相同的注释提供了一种报告解析错误的方法。
【讨论】: