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

如何通过phplint正确处理PHP中的错误,php,error-handling,Php,Error Handling,我对PHP非常陌生。我在服务器端脚本上有一行代码,用于打开文件: $fh=fopen($myFile,'r') 当我通过phplint运行此代码时,它会通知我: $fh = fopen($myFile, 'r'); \_ HERE ==== 19: notice: unhandled error(s): E_WARNING 我之前尝试过创建一个错误处理程序,并专门将其设置为处理E_WARNING,如下所示:

我对PHP非常陌生。我在服务器端脚本上有一行代码,用于打开文件:

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

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

                $fh = fopen($myFile, 'r');
                            \_ HERE
==== 19: notice: unhandled error(s): E_WARNING
我之前尝试过创建一个错误处理程序,并专门将其设置为处理
E_WARNING
,如下所示:

设置错误处理程序(“错误处理程序”,E\U警告)


但我也收到了同样的通知。我想正确地做这件事。是否有其他机制来处理此错误,
phplint
认为是正确的?

您可以使用PHP的
Is\u readable()
方法来查看文件是否存在,并且在读取文件之前是否可读


手动输入:

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


手动输入:

您可以使用
@fopen
使错误静音,然后检查返回值是否为FALSE

您可以使用
@fopen
使错误静音,然后检查返回值是否为FALSE

PHPLint警告指示函数(本例中为fopen)记录为在出现错误情况时“发出”E_警告

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

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

$fh = @fopen($myFile, 'r');
// check $fh here
显然,在调用之前添加文件\u exists()或is\u readable()不会使PHPLint静音

参考:

参考:
“如果打开失败,将生成级别E_警告的错误。您可以使用@来抑制此警告。”

PHPLint警告表示如果出现错误情况,该功能(在本例中为fopen)记录为“引发”E_警告

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

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

$fh = @fopen($myFile, 'r');
// check $fh here
显然,在调用之前添加文件\u exists()或is\u readable()不会使PHPLint静音

参考:

参考:
“如果打开失败,将生成级别E_警告的错误。您可以使用@来抑制此警告。”

您可以在执行fopen()之前运行文件_exists()@JohnP对,但是
phplint
不会注意到在这种情况下不会触发错误。这是否意味着忽略phplint发出的此类警告是合理的?(如果这么简单,我很抱歉)。我自己也很想知道。我不使用PHPlint,所以我不知道。在打开文件之前检查文件是否存在,应该足以阻止99.9%的用例中的错误。你也可以使用
is_readable
,一举两得,以便speak@JohnP看来phplint只是想在这种情况下警告我,这并不意味着我没有正确处理错误。如果您想将您的评论作为答案发布,我可以“检查”它。您可以在执行fopen()@JohnP-Right之前运行一个文件。\u exists(),但是
phplint
不会注意到在这种情况下不会触发错误。这是否意味着忽略phplint发出的此类警告是合理的?(如果这么简单,我很抱歉)。我自己也很想知道。我不使用PHPlint,所以我不知道。在打开文件之前检查文件是否存在,应该足以阻止99.9%的用例中的错误。你也可以使用
is_readable
,一举两得,以便speak@JohnP看来phplint只是想在这种情况下警告我,这并不意味着我没有正确处理这个错误。如果你想把你的评论作为回答,我可以“检查”它。