Столкнулся с проблемой, никак не могу найти, что значит символ @ например в выражении Код (Text): $email = @$_POST['email'];
Иногда бывает желательно игнорировать фатальные ошибки, о которых могут сообщать специфические функции PHP. Например, Вы хотите игнорировать ошибку вызова mail() и при этом проверить возвращаемое значение. Причем, так, чтобы сообщение об ошибке появилось в браузере. Например, Код (PHP): $err_code = @mail(); Операция подавления ошибки(сообщений) @ может использоваться перед любым выражением, любой записью, которая генерирует значение, возвращает значение или имеет значение. Например, Код (PHP): $а = @(4999/0); Без символа операции @ эта строка вызовет предупреждение о делении на нуль. Если же использовать операцию @, то вывод сообщения об ошибке подавляется. При таком подавлении сообщений об ошибках необходимо иметь ввиду, что при отладке это может создать некоторые проблемы.. и нужно создать код, где будет происходить обработка ошибок, чтобы можно было их проверить. Если РНР установлен с активизированной функцией track_errors, сообщение об ошибке будет сохраняться в глобальной переменой Код (PHP): $php_errormsg ($phperrmsg). Порой более правильно все-таки непосредственно проверять значения. Например, Код (PHP): if ( isset($_GET['q']) ) { $searchKeywords = $_GET['q'] ; } P.S 21 век на дворе а Google пользоваться не умеете, но уже полезли в php.
"Фатальные" игнорировать нежелательно И проигнорировать их невозможно, работа скрипта всё равно будет "аварийно остановлена" Подавление ошибок - это, скорее, для нотисов, варнингов всяких. И да, подавление ошибок - это плохо Последнее - ИМХО.
sobachnik Например, скрипт возвращает xml по ajax запросу. Нужно, чтобы он выдал не html с описанием ошибок и предупреждений, а тот же xml, нужный для JavaScript-а. Код (PHP): @$result=$mysqli->query("SELECT users.id, users.login, users.color FROM users, online WHERE users.id=online.user"); if($mysqli->errno){ $errMsg[]=$mysqli->error; $status=3;//ошибка в скрипте }
А смысл @$result.. Ошибки и так не выводит разве, чтобы не создан объект $mysqli Но опять таки mysqli_connect_errno и не нужны @
Я сейчас не помню, но были ошибки. Просто автоматом ставлю проверку после каждого запроса, т.к. мне ни в коем случае не хочется аварийно прерывать работу скрипта или нарушать связь php-xml-js.
Так я выше написал А смысл @$result.. Ошибки и так не выводит разве, чтобы не создан объект $mysqli Но опять таки mysqli_connect_errno и не нужны @ Это от этого сспасает