allora mi correggo perchè credo di aver detto una cappellata immensa.
Allora cerco di chiarirti/mi le idee. Rimuovi tutto quanto ho affermato in precedenza.
Il discorso è questo php ha una configurazione che si chiama max_execution_time che specifica in secondi qual'è il tempo massimo di esecuzione di uno script, tipicamente questo valore è 30 secondi e il suo scopo principale è quello di evitare che script scritti (ad esempio cicli infiniti, etc...) vadano a bloccare il server tendo troppo occupata la cpu.
Il nocciolo della questione è che questo tempo massimo di esecuzione è relativo allo script in uso e ne conteggio diciamo che tiene conto solo del tempo impiegato dallo script stesso e non da esecuzione estene allo script come system call, query su db etc.
E' importante questo perchè la funzione sleep() è in definitiva un system call che chiedere di mandare il sleep il thread di esecuzione dello script dalla quale viene chiamata.
Ho effettuato dei test ora controllando con un codice abbastanza semplice
[php]
<?php
echo "hello";
sleep (40);
echo "word";
?>
[/php]e in effetti non viene generato l'errore di aver superato il tempo massimo di esecuzione.
L'idea di set_time_limit() invece è che nel momento in cui tu la chiami resetta il contatore del tempo di esecuzione e ti da ancora a disposizione i secondi che hai specificato come parametro. Citando il manuale di php.net
Quando viene eseguita la funzione **set_time_limit()**, questa re-imposta il il contatore del tempo di esecuzione a zero. In altre parole, se il timeout è impostato al default di 30 secondi, e dopo 25 secondi di esecuzione si richiama la funzione con set_time_limit(20), lo script potrà girare per 45 secondi.
DIciamo che non trovo molto corretto quanto detto dal tuo professore dato che non fanno la stessa cosa, voglio dire la set_time_limit() non mette in pausa lo script ne altro, ma non conoscendo perfettamente il core di php non posso escludere che la stessa funzione sleep chiami la set_time_limit() per non avere problemi.
Spero di essere stato chiaro, e se ho sbagliato qualcosa di essere corretto, dato che siamo qua tutti per impare.
Un consiglio finale usa SEMPRE il manuale su php.net è una risosarsa indispensabile (se proprio sei pigro c'è anche in italiano).