有没有办法在 PHP 中不需要两个 if 语句来执行此检查?
我有这个 if 语句,
if(file_exists( $_SERVER{'DOCUMENT_ROOT'}.$writabledir.$name) && filemtime($_SERVER{'DOCUMENT_ROOT'}.$writabledir.$name) < $olddate) {
如果文件在那里,
Warning: filemtime(): stat failed for /User....
但如果文件不在那里,我会收到此错误,我知道我可以先执行 if,然后执行内部 if,但有更好的方法吗?
i have this if statement
if(file_exists( $_SERVER{'DOCUMENT_ROOT'}.$writabledir.$name) && filemtime($_SERVER{'DOCUMENT_ROOT'}.$writabledir.$name) < $olddate) {
if the file is there all is well but if the file is not there I get this error
Warning: filemtime(): stat failed for /User....
I know I can do an if and then an inner if but is there a better way?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果
file_exists
返回 false,则filemtime
调用永远不会发生。&&
是 PHP 中的短路逻辑 AND,意思是如果不需要进行第二次调用(即逻辑语句的第一部分为 false,因此没有办法整个陈述可能是真的),但事实并非如此。您的代码中可能还发生了其他奇怪的事情。If
file_exists
is returning false, then thefilemtime
call should never happen.&&
is a short-circuiting logical AND in PHP, meaning that if it doesn't need to make the second call (i.e. first part of the logical statement is false, therefore there is no way the whole statement could be true), it won't. There might be something else weird going on in your code.