Оператори управління помилками PHP
PHP підтримує один оператор управління помилками: знак @. У разі, якщо він передує будь-якому вираженню в PHP-коді, будь-які повідомлення про помилки, що генеруються цим виразом, будуть проігноровані.
У разі, якщо встановлена опція track_errors, всі генеруються повідомлення про помилки будуть зберігатися у змінній $ php_errormsg. Ця змінна буде перезаписуватися при виникненні кожної нової помилки, тому у разі потреби перевіряйте її відразу ж.
<?php // Преднамеренная ошибка при работе с файлами $my_file = @file ('non_existent_file') or die ("Failed opening file: error was '$php_errormsg'"); // работает для любых выражений, а не только для функций $value = @$cache[$key]; // В случае если ключа $key нет, сообщение об ошибке не будет отображено ?>
Увага: Оператор @ працює тільки з виразами. Є просте правило: якщо довільна мовна конструкція повертає значення, значить ви можете використовувати попередній їй оператор @. Наприклад, ви можете використовувати @ перед іменем змінної, довільної функцією або викликом включати (), константою і так далі. У той же час ви не можете використовувати цей оператор перед визначенням функції або класу, умовними конструкціями, такими як, якщо або Еогеасп.
Увага: Оператор @ не пригнічує висновок помилок, що виникають на стадії синтаксичного розбору скрипта.
На сьогоднішній день оператор @ пригнічує висновок повідомлень навіть про критичні помилки переривати роботу скрипта. Крім усього іншого, це означає, що якщо ви використовували @ для придушення помилок, що виникають при роботі будь-якої функції, у випадку якщо вона недоступна або написана неправильно, подальша робота скрипта буде зупинена без будь-яких повідомлень.