Дайте мне одну вескую причину сделать это
if( isset($_GET['key']) && ($_GET['key'] === '123') )
{...
вместо этого
if( @$_GET['key'] === '123' )
{...
Я прошу именно этот вариант кода, а не вообще!
Не приветствуются следующие причины:
- «использование
@
замедлит работу приложения на несколько наносекунд, потому что ошибка все равно создается (даже если она подавлена).» Ну, я предпочитаю более медленный код, но более читаемый. - «использование
@
— плохая привычка.» В целом это может быть правдой, но я не верю в этот случай (более того, вредные привычки могут зависеть от контекста, в руководстве по PHP в функции типаfopen
они предлагают чтобы использовать@
в определенных обстоятельствах, см. Ошибки/Исключения на http://www.php.net/manual/en/function.fopen.php)
GET
или что-то в этом роде? - person Waleed Khan   schedule 22.02.2013isset
сделает невозможным определение того, была ли переменная не установлена, всегда молча заменяйте ее замещающим значением. Подавление@
обратимо. Если вы абсолютно уверены, что вам не нужно что-то отлаживать позже, используйтеisset
. Используйте@
, если входной параметр может иметь решающее значение или иметь отношение к безопасности (а затем используйте обработчик ошибок ведения журнала). - person mario   schedule 22.02.2013!==
или===
? Большая разница. Если вы используете===
, я считаю, что нет причин не использовать@GET[]
, хотя я бы не стал этого делать, а вместо этого создал бы оболочку. (по строкамget_getpost($name, $type)
) - person Bart Friederichs   schedule 22.02.2013error_reporting(0);
, а затем опубликовать. Вы не знаете, какие проблемы скрывались за подавлением. Глупая идея/вопрос. - person Daryl Gill   schedule 22.02.2013===
для обоих. - person Marco Demaio   schedule 22.02.2013if ($_GET["key"]==="123")
или дажеif ($_GET->int["key"]===123)
, не беспокоясь. - person mario   schedule 22.02.2013