PHP の file_exists と is_file、is_dir の違いに関するこの記事を読んだ後、PHP の file_exists = is_dir + is_file であることを基本的に理解しました。
検証するプログラムを作成します:
それぞれ 1000 回実行し、必要な時間を記録します。
ファイルが存在します (カレントディレクトリ)
is_file:0.4570ms
file_exists:2.0640ms
ファイルが存在します (絶対パスレベル 3/www/hx/a/)
is_file:0.4909ms
file_exists:3.3500ms
ファイルが存在します (絶対パス レベル 5/www/hx/a/b/c/)
is_file:0.4961ms
file_exists:4.2100ms
ファイルが存在しません (現在のディレクトリ)
is_file:2.0170ms
file_exists:1.9848ms
ファイルが存在しません (絶対パス レベル 5/www/hx/a/b/c/)
is_file:4.1909ms
file_exists:4.1502ms
ディレクトリが存在します
file_exists:2.9271ms
is_dir:0.4601ms
ディレクトリが存在しません
file_exists:2.9719ms
is_dir:2.9359ms
is_file($file)
file_exists($file)
$fileがディレクトリの場合、is_fileはfalseを返し、file_existsはtrueを返します
ファイルが存在する場合、is_fileはよりもはるかに高速ですfile_exists;
ファイルが検出されるディレクトリが深いほど、速度の差は大きくなりますが、少なくとも 4 倍高速になります。
ファイルが存在しない場合、is_fileはfile_existsよりも少し遅くなりますが、無視しても問題ありません。
ディレクトリが存在する場合、is_dir は file_exists よりもはるかに高速です。
ディレクトリが存在しない場合、is_dir は file_exists よりも少し遅くなりますが、無視できます。
結論:
ファイルが存在するかどうかを判定したい場合は関数is_file()を使用し、
ディレクトリが存在するかどうかを判定したい場合は関数is_dir()を使用し、
場所はないようですfile_exists を使用するには、渡されるパラメータが不明です。ファイルまたはディレクトリに使用されますか?