Forum und email

אופרטורים לטיפול בשגיאות

PHP תומכת באופרטור אחד לשליטה על שגיאות, אופרטור השטרודל, (@). כאשר מצרפים לתחילת ביטוי את האופרטור, כל הודעת שגיאה שהביטוי ייצר ,המערכת תתעלם ממנה.

אם תכונת track_errors מאופשרת, כל הודעת שגיאה מהביטוי תישמר במשתנה $php_errormsg. כל הודעה נוספת מוחקת את ההודעה הקודמת במשתנה, לכן אם אתה רוצה להשתמש בו , עליך לבדוק את תוכנו בהקדם.

<?php
/* טעות מכוונת בפתיחת קובץ */
$my_file = @file ('non_existent_file') or
    die (
"Failed opening file: error was '$php_errormsg'");

// האופרטור עובד על כל סוגי הביטויים , ולא רק על פונקציות
$value = @$cache[$key]; 
//. לא תיוצר הודעת שגיאה , אפילו אם האינדקס  אינו קיים

?>

Note: האופרטור @ עובד רק על ביטויים . כלל פשוט : אם אתה יכול לקחת את הערך של הביטוי, אתה יכול לצרף לו את אופרטור השגיאה. למשל משתנים, ביטויים, פונקציות, וכו' . לא ניתן להוסיף את האופרטור להגדרת פונקציות ומחלקות, או למבנים ותנאים כמו ifוforeachוכו'.

ראה גםerror_reporting()והמדריך לטיפול בשגיאות ופונקציות תיעוד..

Note: אופרטור השגיאה - "@" , לא מונע הצגת הודעת שגיאת קימפול.

Warning

נכון לעכשיו אופרטור השגיאה "@" , מנטרל גם הודעות שגיאה קריטיות, שעלולות להפסיק ריצה של סקריפטים, זה אומר שאם תשתמש באופרטור לנטרל פונקציות, שלא יהיו זמינות, או שהיתה שגיאת הקלדה בקריאה להם, הסקריפט ימות בלי לתת שום אינדקציה למה.