veröffentlicht am: 03.05.2020 zuletzt aktualisiert am: 07.02.2023
Manchmal wollen wir, dass unsere Skripte ein paar Sekunden warten, bevor sie die nächste Aktion ausführen. Hierfür gibt es in PHP die sleep Funktion.
Die Funktion sleep akzeptiert nur einen Parameter. Dabei handelt es sich um die Sekundenanzahl, um die die Ausführung des Skripts verzögert werden soll.
sleep($sekunden) $sekunden (erforderlich) Anzahl an Sekunden, die gewartet wird
Um die Ausführungszeit des Skripts um 5 Sekunden zu verlängern, kannst du sleep so verwenden:
sleep(5);
Um zu sehen, ob die Wartezeit wirklich eingehalten wird, kannst du sleep in Kombination mit date verwenden.
echo date('H:i:s'); // 20:10:41 sleep(5); echo date('H:i:s'); // 20:10:46
Dabei wirst du feststellen, dass beide Werte von echo zeitgleich auf deiner Seite ausgegeben werden. Dies liegt daran, dass die Ausgabe zunächst im Ausgabepuffer komplett gespeichert wird.Mit der Funktion flush kannst du dafür sorgen, dass die Ausgabe sofort angezeigt wird. Um Aktionen zeitverzögert durchzuführen, sind allerdings andere Sprachen wie JavaScript besser geeignet. Um flush verwenden zu können, musst du unter Umständen deine Konfigurationen anpassen oder kannst auch die Funktion ob_end_flush verwenden.
echo date('H:i:s'); // 20:25:03 ob_end_flush(); flush(); sleep(15); echo date('H:i:s'); // 20:25:18
sleep akzeptiert als Parameter nur ganzzahlige Werte.Gleitkommazahlen werden konvertiert, so resultiert 0,5 in 0.Um zum Beispiel eine halbe Sekunde zu warten, kannst du stattdessen usleep verwenden. Diese Funktion verwendet Mikrosekunden als Parameter.
usleep(500000);
Mit der Funktion time_nanosleep kannst du als ersten Parameter Sekunden und als zweiten Nanosekunden angeben.Um 1,5 Sekunden zu warten, kannst du folgendes tun:
time_nanosleep(1, 500000000);
Mit time_sleep_until kannst du einen Zeitstempel angeben, statt einer direkten Sekundenzahl. Um zum Beispiel 5 Sekunden zu warten, kannst du das tun:
time_sleep_until(time()+5);
Mit sleep kannst du die Ausführungszeit deiner Skripte künstlich verlängern, allerdings solltest du das in Produktivumgebungen vermeiden so gut als möglich.Unter Umständen solltest du für manche Anwendungsfälle sogar eher clientseitige Sprachen wie JavaScript verwenden.
Hast du Kritik, Lob, Anmerkungen oder einen Fehler gefunden? Schreib mir doch einen Kommentar dazu!
😩 Gelangweilt von den Udemy & YouTube-Tutorials?!
Lerne spielerisch Python, Java & SQL und komme deiner gutbezahlten (und an der 🌴 liegenden) Traumkarriere einen Schritt weiter.
"Für Leute die gerne Python oder Java lernen wollen ist Codegree klasse. Ist nicht wie bei anderen Konkurrenten auf Videokursen aufgebaut..."
- Lennart Sparbier
100% kostenlos registrieren · keine Kreditkarte notwendig
Im Gegensatz zu der Abendschule oder der alteingesessenen Uni lernst du bei codegree die Sprachen & Pakete, die wirklich im Jobmarkt gesucht werden.
100% kostenlos registrieren · keine Zahlungsdaten notwendig