trigger_error în PHP

Erori și excepții PHP 4.0.1+

Generează un mesaj de eroare de nivel utilizator (notificare, avertisment, deprecated), ca cele produse de PHP.

Sintaxă
trigger_error(string $message, int $error_level = E_USER_NOTICE): true

Ce face trigger_error

trigger_error produce un mesaj care trece prin același sistem ca avertismentele PHP: este afișat sau scris în jurnal după setările serverului și poate fi prins cu set_error_handler. Scriptul continuă după apel.

Nivelurile permise sunt E_USER_NOTICE (implicit), E_USER_WARNING și E_USER_DEPRECATED. Ultimul este folosit de biblioteci pentru a anunța că o funcție va dispărea.

Din PHP 8.4, nivelul E_USER_ERROR este depreciat. Pentru o eroare care trebuie să oprească execuția, aruncă o excepție.

Parametri

Parametru Descriere
$message Textul mesajului.
$error_level Opțional. E_USER_NOTICE, E_USER_WARNING sau E_USER_DEPRECATED.

Ce returnează

Întotdeauna true.

Exemple

Exemplul 1: Anunțarea unei funcții învechite

Handler-ul afișează mesajul în pagină, ca să vedem ce primește. Fără el, mesajul ar apărea în jurnalul de erori.

<?php
set_error_handler(function (int $nivel, string $mesaj): bool {
    $nume = [E_USER_NOTICE => "notificare", E_USER_WARNING => "avertisment", E_USER_DEPRECATED => "învechit"];
    echo "(" . $nume[$nivel] . ") $mesaj\n";
    return true;
});

function pretVechi(float $pret): float
{
    trigger_error("pretVechi() este învechită, folosește pretCuTva()", E_USER_DEPRECATED);
    return $pret * 1.19;
}

echo pretVechi(100) . "\n";
trigger_error("Imaginea produsului lipsește", E_USER_WARNING);
echo "Scriptul continuă.";

Rezultat

(învechit) pretVechi() este învechită, folosește pretCuTva()
119
(avertisment) Imaginea produsului lipsește
Scriptul continuă.

Greșeli frecvente

  • Folosești trigger_error(..., E_USER_ERROR) ca să oprești scriptul. Din PHP 8.4 primești Deprecated. Aruncă o excepție.
  • Folosești trigger_error pentru erori pe care apelantul trebuie să le trateze. Mesajul nu poate fi prins cu try/catch; pentru asta aruncă o excepție.

Comenzi înrudite

  • set_error_handler: Înlocuiește tratarea standard a avertismentelor și notificărilor PHP cu o funcție scrisă de tine.
  • error_reporting: Setează ce tipuri de erori raportează PHP (sau doar citește setarea curentă).
  • error_log: Scrie un mesaj în jurnalul de erori al serverului sau într-un fișier ales de tine.
  • Exception: Clasa de bază pentru excepții. Extinde-o ca să creezi tipuri proprii de erori pentru aplicația ta.