Home > Article > Backend Development > PHP function selection to determine whether a file exists (file_exists or is_file)
We know that PHP provides two built-in functions is_file and file_exists, both of which can be used to determine whether a file exists on appropriate occasions. Which one is better to use? This article will give you a brief explanation.
Let’s take a look at the test data below. Specific examples and visible data are the most convincing. Use is_file and file_exists to detect the existence of the file, execute it 1000 times respectively, and record the required time. The 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. I believe that you are smart and have already understood it. Programmer’s Home will give you a summary: 1. To determine whether the file exists, use the function is_file(). 2. To determine whether the directory exists, use the function is_dir(), 3. When you are not sure whether the incoming parameter is a file or a directory, you can consider file_exists, otherwise you will be too lonely. |