Ce face register_tick_function
Un „tick” are loc după fiecare N instrucțiuni simple din codul care se află sub declare(ticks=N);. La fiecare tick, PHP apelează funcțiile înregistrate cu register_tick_function. Mecanismul este folosit rar, de exemplu pentru profilare simplă sau, în trecut, pentru semnale.
Ticks funcționează doar în fișierul în care este scris declare. Pentru semnale, în PHP modern se folosește pcntl_async_signals(true).
Parametri
| Parametru | Descriere |
|---|---|
$callback |
Funcția apelată la fiecare tick. |
$args |
Opțional. Argumente transmise funcției. |
Ce returnează
true la succes.
Exemple
Exemplul 1: Un tick după fiecare instrucțiune
Primul tick vine imediat după instrucțiunea de înregistrare, apoi câte unul după fiecare echo.
<?php
declare(ticks=1);
function la_tick(): void
{
echo " [tick]\n";
}
register_tick_function("la_tick");
echo "unu\n";
echo "doi\n";
unregister_tick_function("la_tick");
echo "trei\n";
Rezultat
[tick]
unu
[tick]
doi
[tick]
trei
Greșeli frecvente
- Pui
declare(ticks=1)într-un fișier și te aștepți la ticks și în fișierele incluse. Fiecare fișier are nevoie de propriuldeclare.
Comenzi înrudite
unregister_tick_function: Anulează o funcție înregistrată cu register_tick_function.register_shutdown_function: Înregistrează o funcție care rulează la sfârșitul scriptului, inclusiv după exit sau după o eroare fatală.