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.07242 s, Vitesse: 1380741 instructions par seconde

TEST 2 --- is_file
<?php $a is_file('bench.php'); ?>
Durée: 0.01767 s, Vitesse: 5659947 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.07537 s, Vitesse: 1326770 instructions par seconde

TEST 4 --- is_file
<?php $a is_file('bench.php'); ?>
Durée: 0.07934 s, Vitesse: 1260380 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.14248 s, Vitesse: 701867 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).