When a program is written, there are two methods to determine whether a file exists. Some use is_file and some use file_exists. Which one is better or more suitable?
Determine whether an object exists using is_file or file_exists?
When a program is written, there are two methods to determine whether a file exists. Some use is_file and some use file_exists. Which one is better or more suitable?
According to the difference between file_exists and is_file and is_dir in PHP, we can basically understand that file_exists = is_dir + is_file in PHP.
Write a program to verify it:
Execute 1000 times, respectively, and record the time required.
File exists (current directory)
Is_file: 0.4570 ms
File_exists: 2.0640 ms
File exists (absolute path Layer 3/www/hx//)
Is_file: 0.4909 ms
File_exists: 3.3500 ms
File exists (absolute path layer 5/www/hx/a/B/c /)
Is_file: 0.4961 ms
File_exists: 4.2100 ms
File does not exist (current directory)
Is_file: 2.0170 ms
File_exists: 1.9848 ms
File does not exist (absolute path layer 5/www/hx/a/B/c /)
Is_file: 4.1909 ms
File_exists: 4.1502 ms
Directory exists
File_exists: 2.9271 ms
Is_dir: 0.4601 ms
The directory does not exist.
File_exists: 2.9719 ms
Is_dir: 2.9359 ms
Is_file ($ file)
File_exists ($ file)
When $ file is a directory, is_file returns false, and file_exists returns true.
If the file exists, is_file is much faster than file_exists;
The deeper the directory where the file to be detected is, the faster the speed difference is, but at least four times faster.
If the file does not exist, is_file is a little slower than file_exists, but it is negligible.
If the directory exists, is_dir is much faster than file_exists;
If the directory does not exist, is_dir is a little slower than file_exists, but it is negligible.
Conclusion:
To determine whether a file exists, use the is_file () function (),
To determine whether a directory exists, use the is_dir () function (),
It seems that file_exists is not needed. Are you sure you want to use file_exists when passing in the parameter file or directory?