如何通过phplint正确处理PHP中的错误

时间:2011-03-17 17:01:02

标签: php error-handling

我是PHP的新手。我在服务器端脚本上有一行代码打开文件:

$fh = fopen($myFile, 'r');

当我通过phplint运行此代码时,它会给我通知:

                $fh = fopen($myFile, 'r');
                            \_ HERE
==== 19: notice: unhandled error(s): E_WARNING

我之前尝试过创建错误处理程序,并专门设置它来处理E_WARNING,如下所示:

set_error_handler("errorHandler", E_WARNING);

但我得到同样的通知。我想正确地做到这一点。是否有其他机制来处理phplint认为正确的错误?

3 个答案:

答案 0 :(得分:3)

PHPLint警告表示如果发生错误情况,该功能(在这种情况下为fopen)被记录为“提升”E_WARNING。

如果发生这种情况,那么您可能会在控制台或屏幕上显示错误消息。大多数程序员不希望在生产代码中使用它,并通过添加@来抑制此警告或更改php.ini(error_reporting)来消除错误。

PHPLint只是提醒你没有添加@。 Lint希望你的代码更像:

$fh = @fopen($myFile, 'r');
// check $fh here

显然在调用之前添加file_exists()或is_readable()不会使PHPLint静音。

参考:http://www.icosaedro.it/phplint/manual.html?p=errors

参考:http://php.net/manual/en/function.fopen.php “如果打开失败,则会生成级别为E_WARNING的错误。您可以使用@来禁止此警告。”

答案 1 :(得分:1)

您可以使用PHP的is_readable()方法查看文件是否存在且在从文件读取之前是否可读。

手动输入:http://php.net/manual/en/function.is-readable.php

答案 2 :(得分:0)

您可以使用@fopen消除错误,然后检查返回值是否=== FALSE