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

TEST 2 --- is_file
<?php $a is_file('bench.php'); ?>
Durée: 0.01765 s, Vitesse: 5667059 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.07572 s, Vitesse: 1320621 instructions par seconde

TEST 4 --- is_file
<?php $a is_file('bench.php'); ?>
Durée: 0.08659 s, Vitesse: 1154905 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.09296 s, Vitesse: 1075744 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).