Мне стало интересно, в каких случаях оправдано использование «@» (dog) для подавления ошибок, что позволяет подавлять ошибки не только от операторов, но и заменять вызовы проверок с помощью «isset» ( if (@$_GET[' парам']) .
) Есть несколько способов побороть отображение ошибок.
Например: 1. Оператор «@»: $а = @(57/0); В этом случае мы обходим проверку деления на ноль.
Быстрое решение для ленивого программиста.
Обратите внимание, что это быстрое решение немного медленнее и усложняет отладку кода.
2. Перехват с помощью операторов try.catch try {операторы, в которых могут возникнуть ошибки} catch(Exception $e) {реакция на ошибку} 3. Установите желаемый уровень оповещения.
Если переменные не инициализированы (не существуют), часто обнуляют необходимые error_reporting и display_errors и не заморачиваются с проверками: $b += (int)$_GET['отсутствует переменная']; вместо: if (isset($_GET['переменная'])) { $b += (int)$_GET['переменная']); } Считаете ли вы, что использование "@" указывает на некомпетентность со стороны программиста? Или в некоторых случаях все же оправдано использование этого оператора (fopen, mysql_connect.)? Еще хотелось бы привести пример простой функции, которую я довольно часто использую для проверки наличия индексов в массиве.
Если элемент существует, то он возвращается функцией.
функция chk($array, $i) { return isset($array[$i])? $array[$i]: ноль; } Выглядит так: if ($var = (int) chk($_GET, 'index')) { $б += $вар } И таким образом заодно можно проверить наличие переданной переменной в массиве: if (in_array($var = chk($_GET, 'index'), array('привет', 'мир'))) { .
переменная $var не пуста и присутствует в массиве.
} Буду рад, если кому-нибудь пригодится (: Теги: #php #Чулан
-
Как Удалить Пароль Windows Vista?
19 Oct, 24 -
Cdn — Новый Стандарт Потокового Видео.
19 Oct, 24 -
Nokia Выпустила Qt 4.6
19 Oct, 24