что означает @ прежде чем включать или требовать - PullRequest
4 голосов
/ 27 апреля 2010

Интересно, что означает @, когда мы используем его прежде, чем включать или требовать в php?!

, таких как:

@include('block.php');

Может быть, это нубский вопрос, но мне нужно это знать, ребята?!

извините за это

Ответы [ 3 ]

10 голосов
/ 27 апреля 2010

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

Это примерно эквивалентно переносу выражения в:

$oldErrorLevel = error_reporting(0);
// the statement
error_reporting($oldErrorLevel);

Вот ссылка на страницу руководства PHP, документирующая его.

3 голосов
/ 27 апреля 2010

@ до вызова функции подавляет любые ошибки, которые обычно выводит функция.

В случае include человек, который делает это, хочет, чтобы сценарий продолжал работать, если block.php отсутствует. Лучший способ сделать это, как правило, сделать что-то вроде этого:

if(is_readable('block.php')) {
  include('block.php');
}
0 голосов
/ 27 апреля 2010

@ - это оператор подавления ошибок в php, вы не увидите никакой ошибки, если файл не найден в этом операторе.

...