如何通过phplint正确处理PHP中的错误
我对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,如下所示:
$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只是想在这种情况下警告我,这并不意味着我没有正确处理这个错误。如果你想把你的评论作为回答,我可以“检查”它。