Відмінності між версіями «Оператори управління помилками PHP»
Bobchik (обговорення • внесок) (Створена сторінка: PHP підтримує один оператор управління помилками: знак @. У разі, якщо він передує будь-яком…) |
|||
Рядок 17: | Рядок 17: | ||
На сьогоднішній день оператор @ пригнічує висновок повідомлень навіть про критичні помилки переривати роботу скрипта. Крім усього іншого, це означає, що якщо ви використовували @ для придушення помилок, що виникають при роботі будь-якої функції, у випадку якщо вона недоступна або написана неправильно, подальша робота скрипта буде зупинена без будь-яких повідомлень. | На сьогоднішній день оператор @ пригнічує висновок повідомлень навіть про критичні помилки переривати роботу скрипта. Крім усього іншого, це означає, що якщо ви використовували @ для придушення помилок, що виникають при роботі будь-якої функції, у випадку якщо вона недоступна або написана неправильно, подальша робота скрипта буде зупинена без будь-яких повідомлень. | ||
+ | |||
+ | |||
+ | [[Оператори мови PHP]] |
Поточна версія на 08:20, 7 травня 2010
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 нет, сообщение об ошибке не будет отображено ?>
Увага: Оператор @ працює тільки з виразами. Є просте правило: якщо довільна мовна конструкція повертає значення, значить ви можете використовувати попередній їй оператор @. Наприклад, ви можете використовувати @ перед іменем змінної, довільної функцією або викликом включати (), константою і так далі. У той же час ви не можете використовувати цей оператор перед визначенням функції або класу, умовними конструкціями, такими як, якщо або Еогеасп.
Увага: Оператор @ не пригнічує висновок помилок, що виникають на стадії синтаксичного розбору скрипта.
На сьогоднішній день оператор @ пригнічує висновок повідомлень навіть про критичні помилки переривати роботу скрипта. Крім усього іншого, це означає, що якщо ви використовували @ для придушення помилок, що виникають при роботі будь-якої функції, у випадку якщо вона недоступна або написана неправильно, подальша робота скрипта буде зупинена без будь-яких повідомлень.