When writing a program, I found that there are two ways of writing when judging whether a file exists. Some people use is_file, and some people use file_exists. Which one is better or more appropriate?
To determine whether a file exists, use is_file or file_exists?
When I was writing a program, I found that there are two ways to determine whether a file exists. Some people use is_file, and some people use file_exists. Which one is better or more appropriate?
After reading this article about the difference between file_exists, is_file, and is_dir in PHP, I basically understand that PHP’s file_exists = is_dir + is_file.
Write a program to verify:
Execute 1000 times each and record the required time.
File exists (current directory)
is_file:0.4570ms
file_exists:2.0640ms
The file exists (absolute path level 3/www/hx/a/)
is_file:0.4909ms
file_exists:3.3500ms
The file exists (absolute path level 5/www/hx/a/b/c/)
is_file:0.4961ms
file_exists:4.2100ms
File does not exist (current directory)
is_file:2.0170ms
file_exists:1.9848ms
The file does not exist (absolute path level 5/www/hx/a/b/c/)
is_file:4.1909ms
file_exists:4.1502ms
Directory exists
file_exists:2.9271ms
is_dir:0.4601ms
Directory does not exist
file_exists:2.9719ms
is_dir:2.9359ms
is_file($file)
file_exists($file)
When $file is a directory, is_file returns false and file_exists returns true
When the file exists, is_file is much faster than file_exists;
The deeper the directory where the file is to be detected, the greater the speed difference, but it is at least 4 times faster.
When the file does not exist, is_file is a little slower than file_exists, but it can be ignored.
When the directory exists, is_dir is much faster than file_exists;
When the directory does not exist, is_dir is a little slower than file_exists, but it can be ignored.
Conclusion:
If you want to determine whether the file exists, use the function is_file(),
If you want to determine whether the directory exists, use the function is_dir(),
There seems to be no place to use file_exists. Is it used when you are not sure whether the parameter passed in is a file or a directory?