有没有办法在 PHP 中不需要两个 if 语句来执行此检查?

发布于 2024-12-07 15:02:17 字数 343 浏览 0 评论 0原文

我有这个 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我们只是彼此的过ke 2024-12-14 15:02:17

如果 file_exists 返回 false,则 filemtime 调用永远不会发生。 && 是 PHP 中的短路逻辑 AND,意思是如果不需要进行第二次调用(即逻辑语句的第一部分为 false,因此没有办法整个陈述可能是真的),但事实并非如此。您的代码中可能还发生了其他奇怪的事情。

If file_exists is returning false, then the filemtime 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文