Интерпретатор PHP устроен таким образом, что при появлении ошибки не
бросает разработчика в одиночку разбираться с проблемой, а помогает в ее решении. Так, при появлении ошибки или предупреждения, они анализируются и определяются к одному из 4-х уровней «серьезности». Далее, интерпретатор выводит на экран сообщение, в котором объявляет о типе ошибки и ее местонахождении в коде программы. Так становится существенно легче ее обнаружить и исправить. При желании, разработчик может настроить параметры PHP таким образом, чтобы он не выдавал сообщения о тех или иных ошибках, попросту игнорируя их, хотя этого и не рекомендуется делать. Более того, настоятельно рекомендуется выставлять уровень контроля ошибок на максимальный, так как это сильно облегчает работу с поиском даже самых мелких ошибок, влекущих, порой, за собой большие неприятности. Но, бывают ситуации, когда при текущей проверке работоспособности программы, в ней отсутствует, например, какой-то скрипт, содержащий необходимую для безошибочной работы, информацию: переменные, функции и т.п. При этом Вам, как разработчику нет нужды проверять работоспособность всей программы, а надо проверить какой-то отдельный участок кода. Для этих случаев существует операция отключения предупреждений. Рассмотрим пример: Листинг 12.1. Код программы, который при выводе сообщит об ошибке.
Представим, что Вы только настроили локальный сервер и просто хотите
проверить, все ли в порядке с работой простых скриптов и выводом текста в нужном формате. При этом скрипт variables.php Вы еще не писали, либо не подключили к проекту. В результате Вы получите сообщение об ошибке, которое сообщит, что переменных не существует. Но цель то была другая! Решить эту проблему можно, используя оператор @, который отключает любые сообщения об ошибках в коде программы при передаче ее интерпретатору. Переписав код следующим образом: Листинг 12.2. Код программы с отключенными ошибками.
В итоге на экран будет выведено сообщение: «Вывод на экран результата
сложения переменных:». Стоит отметить, что данный оператор является быстрым решением в экстренных случаях, потому настоятельно не рекомендуется оставлять его в окончательном варианте кода. Злоупотребление данным оператором может привести к проблемам в отладке кода и его модификации.