Choisissez un test :

file_exists ou is_file ?

On veut tester l'existence d'un fichier. Quelle fonction est la plus rapide ?

TEST 1 --- file_exists
<?php $a file_exists('bench.php'); ?>
Durée: 0.0722 s, Vitesse: 1384986 instructions par seconde

TEST 2 --- is_file
<?php $a is_file('bench.php'); ?>
Durée: 0.01921 s, Vitesse: 5206112 instructions par seconde

Pour simuler le test sur plusieurs fichier, on met un clearstatcache() avant chaque test...

TEST 3 --- file_exists
<?php $a file_exists('bench.php'); ?>
Durée: 0.07716 s, Vitesse: 1296010 instructions par seconde

TEST 4 --- is_file
<?php $a is_file('bench.php'); ?>
Durée: 0.08204 s, Vitesse: 1218856 instructions par seconde

Conclusion...

La différence entre les deux n'est pas énorme au niveau vitesse. is_file est même parfois plus rapide. Surtout il présente l'avantage de tester l'existence et le type (est-ce un fichier ? un répertoire ?).
Les tests 3 et 4 simulent le test d'existence de 100 000 fichiers différents.
On fait un essai avec des fichiers qui n'existent pas

TEST 5 --- is_file
<?php $a is_file($i.'.php'); ?>
Durée: 0.10776 s, Vitesse: 928015 instructions par seconde

L'exécution est un peu plus rapide car PHP ne met pas en mémoire les infos sur le fichiers (infos qui sont supprimées par le clearstatcache).