¿Hacer que PHP espere hasta que una función se complete?

¿Hay alguna manera de hacer que PHP espere hasta que una función regrese antes de continuar?

Este es mi código:

<?php

    set_time_limit(0);

    function waitforchange($nof) {
        $lfilemod=filemtime($nof);
        while(filemtime($nof) == $lfilemod) {
            clearstatcache();
            usleep(10000);
        }
    }

    waitforchange('./blahblah.txt')
    sleep(5);
    echo 'done';

?>

Se supone que hay que esperar hastablahblah.txt cambios, espere otros cinco segundos después de eso, luego imprima "listo", sin embargo, se imprime "listo" después de cinco segundos, sin importar si el archivo realmente cambió.

Respuestas a la pregunta(3)

Su respuesta a la pregunta