Подскажите для чево используется @ в пхп

Статус
В этой теме нельзя размещать новые ответы.

Smile

Старатель
Регистрация
12 Ноя 2006
Сообщения
157
Реакции
11
Привет всем... подскажите для чево используется @ в пхп...

есть вот такой пример:

1. @fopen( @$abc, "r" )
2. fopen( $abc, "r" )

по функц. 1 строка тоже самое что и 2... но какая разница между ними будет ?

заранее спс.
 
Префикс @ отключает вывод возможных сообщений об ошибках в данной функции. Возможно импользование для всех функций.
 
Для того, чтобы не выводились ошибки при работе данной функции, если она не может быть выполнена или выполнена некорректно... Как-то так...
 
Выдержка из мануала (PHPmanual/ru/language.operators.errorcontrol.html)

Оператор управления ошибками
PHP поддерживает один оператор управления ошибками: знак @. В случае, если он предшествует какому-либо выражению в PHP-коде, любые сообщения об ошибках, генерируемые этим выражением, будут проигнорированы.

Замечание: Оператор @ работает только с выражениями. Есть простое правило: если произвольная языковая конструкция возвращает значение, значит вы можете использовать предшествующий ей оператор @. Например, вы можете использовать @ перед именем переменной, произвольной функцией или вызовом include(), константой и так далее. В то же время вы не можете использовать этот оператор перед определением функции или класса, условными конструкциями, такими как if или foreach.

Замечание: Оператор @ не подавляет вывод ошибок, возникающих на стадии синтаксического разбора скрипта.

PHP:
<?php
// Преднамеренная ошибка при работе с файлами
$my_file = @file ('non_existent_file') or
    die ("Failed opening file: error was '$php_errormsg'");

// работает для любых выражений, а не только для функций
$value = @$cache[$key]; 
// В случае если ключа $key нет, сообщение об ошибке не будет отображено
?>

Внимание
На сегодняшний день оператор @ подавляет вывод сообщений даже о критических ошибках прерывающих работу скрипта. Помимо всего прочего, это означает, что если вы использовали @ для подавления ошибок, возникающих при работе какой-либо функции, в случае если она недоступна или написана неправильно, дальнейшая работа скрипта будет остановлена без каких-либо уведомлений.
 
по мне дак, лучше через try catch отловить ошибку, чем так извращаться.
 
Собака ставится для того чтобы заглушить нотайсы те ошибки скрипта..очень дурная практика... никогда так не делайте ..
наоборот вы должны видеть ошибки чтобы правильно отладить скрипт..используйте error_reporting(E_ALL);
 
А наверное самое главное, что нужно о собаке знать, так это ее тормознутость, лучше избегать ее вообще в проектах, слишком вилико ее побочное действие которое влияет на скорость выполнения скрипта!!!!
 
А наверное самое главное, что нужно о собаке знать, так это ее тормознутость, лучше избегать ее вообще в проектах, слишком вилико ее побочное действие которое влияет на скорость выполнения скрипта!!!!
о собаке вообще нужно знать))
 
_NoName_ вы похожи на параноика из 70ых .... собака ничто по сравнению с теми же алгоритмами, которые пишет среднестистический "программист".
 
+1... лучше если не нужны ошибки или ностисы использовать error_reporting а то потом как начнешь эти дурацкие собачки убирать из скриптов и искать какая же горе функция неверно работает... пппц какойто
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху