Τελεστές Ελέγχου Λαθών
Η PHP υποστηρίζει έναν τελεστή ελέγχου λαθών: το σύμβολο (@). Όταν προηγείται σε μια έκφραση στην PHP, οποιοδήποτε μήνυμα λάθους που ίσως δημιουργηθεί από αυτή την έκφραση θα αγνοηθεί.
Αν το χαρακτηριστικό των track_errors έχει ενεργοποιηθεί, οποιοδήποτε μήνυμα λάθους που θα δημιουργηθεί από την έκφραση θα αποθηκευτεί στη μεταβλητή $php_errormsg. Αυτή η μεταβλητή θα αλλάζει ανάλογα με κάθε λάθος, συνεπώς θα πρέπει να την ελέγχετε συχνά αν θέλετε να τη χρησιμοποιείτε.
<?php
/* Intentional file error */
$my_file = @file ('non_existent_file') or
die ("Failed opening file: error was '$php_errormsg'");
// this works for any expression, not just functions:
$value = @$cache[$key];
// will not issue a notice if the index $key doesn't exist.
?>
Note: Ο τελεστής @ δουλεύει μόνο στις εκφράσεις. Ένας απλός κανόνας είναι ο εξής: αν μπορείτε να πάρετε την τιμή από κάτι, μπορείτε να βάλετε ως πρόθεμα σ'αυτό, το @. Για παράδειγμα, μπορείτε να το προσθέσετε στις μεταβλητές, στις συναρτήσεις και στις κλήσεις του include() , στις σταθερές κ.ο.κ. Δεν μπορείτε να το προσθέσετε στους ορισμούς συναρτήσεων ή κλάσεων, ή υποθετικών δομών όπως τις if και foreach κ.ο.κ.
Δείτε επίσης την error_reporting() και το τμήμα του εγχειριδίου Συναρτήσεις ελέγχου λαθών και σύνδεσης.
Note: Το πρόθεμα του τελεστή ελέγχου λαθών "@" δε θα αποτρέψει την εμφάνιση των μηνυμάτων που είναι αποτέλεσμα από λάθη μεταγλώττισης.
Προς το παρόν, το πρόθεμα ελέγχου λαθών "@" θα αποτρέψει ακόμη και την αναφορά λαθών για κρίσιμα λάθη που θα τερματίσουν την εκτέλεση του κώδικα. Ανάμεσα σε άλλα, αυτό σημαίνει ότι αν χρησιμοποιείτε το "@" για να εξαφανίσετε τα λάθη από μια συγκεκριμένη συνάρτηση τότε αν δεν είναι διαθέσιμο ή δεν έχει γραφεί σωστά, το script θα σταματήσει αμέσως εκεί χωρίς κάποια ένδειξη για την αιτία.