PHP E_WARNING不停止进程只返回 false


php E_WARNING don't stop the process return false only?

我在 php 方面遇到了一个小问题,我想写入一个文件,但如果为空并且函数返回 true file_exists()我可以继续写入函数或附加数据,但如果文件不存在,我被迫做出另一个选项来创建文件在这种情况下我使用 file_put_contents 并且函数自己制作文件。无论如何,我只想使用这样的静默函数:@filesize('file.txt')没有@,我会收到一个警告,比如文件不存在并传递,我想知道将该功能与错误控制运算符一起使用是否可靠(@)。提前谢谢你!

和我的代码:

if (@filesize('entries.txt') > 0 ){
    file_put_contents('entries.txt', ',' . time(), FILE_APPEND);
}else {
    file_put_contents('entries.txt', time());
}

我得出的结果如下:

if( !file_exists( $entries )) file_put_contents( $entries, '');
$smilliseconds = filesize( $entries ) >= 10? ','. $milliseconds: $milliseconds;

不,您永远不应该使用 @ 运算符。它掩盖了您需要了解的问题,并且几乎总是有更好的方法。例如,您可以像这样组合file_exists检查:

if (file_exists('entries.txt') && filesize('entries.txt') > 0 ){