抑制stream_socket_client警告

Vla*_*ban 1 php error-handling

我有一行代码

$result = stream_socket_client($target, $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT);
Run Code Online (Sandbox Code Playgroud)

如果连接不成功,则会发出警告

WARNING: stream_socket_client(): Failed to enable crypto
Run Code Online (Sandbox Code Playgroud)

我需要压制警告.添加@以使线条看起来

$result = @stream_socket_client($target, $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT);
Run Code Online (Sandbox Code Playgroud)

没有帮助.PHP似乎忽略了@

我在这里错过了什么?

Tom*_*iak 5

这不是一个很好的解决方案,但您可以暂时禁用警告消息:

$oldErrorReporting = error_reporting(); // save error reporting level
error_reporting($oldErrorReporting ^ E_WARNING); // disable warnings
$result = stream_socket_client($target, $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT);
error_reporting($oldErrorReporting); // restore error reporting level
Run Code Online (Sandbox Code Playgroud)