la funzione prende un percorso assoluto oppure un percorso relativo.
Il punto, se il percorso è relativo è che lo è rispetto al file che stai chiamando, se ad esempio hai questa situazione:
./index.php
./include/file_exist.php
./dir/filedatestare.txt
e in file_exits.php vuoi testare "filedatestare.txt" o usi il percorso assoluto e andrà sempre, oppure se il file_exit.php viene incluso dalla index allora ci dovrai mettere:
if(file_exists('dir/filedatestare.txt')) {
}
altrimenti se lo chiami direttamente:
if(file_exists('../dir/filedatestare.txt')) {
}
secondo me comunque l'ideale è sempre usare il percorso assoluto, in modo da non doverti preoccupare se riutilizzi il codice di controllare i percorsi al suo interno.
Una cosa cosi dovrebbe essere l'ideale:
$path = $_SERVER['DOCUMENT_ROOT'].dir/filedatestare.txt;
Attento che su alcuni server la DOCUMENT_ROOT finisce con la / su altri no, quindi dovrai verificare per avere un percorso corretto.
ciao