Защо се исползват някой '@' пред заявките и други кодове

kikity_94

Registered
Здравейте забелязал съм че някой слагат @ пред заявка примерно

$result = @mysql_fetch_array($query)

Може ли да ми обесните защо се исползва това и по добре ли е с него или не :)
 
Генерално служи за да не дава грешка от командата на екрана
примерно
unlink ('fdfd'); - ще изпише ВНИМАНИЕ НЯМА ТАКЪВ ФАЙЛ ДРЪН ДРЪН
а ако сложиш @ няма да ти го изпише и ще си продължи
 
Също така е удобно и когато е възможно да възникне някаква грешка, вместо да ти изписва някакви странни грешки, например както посочиха по-горе

$promenliva=unlink(asdasd);

реално като го няма този файл, ще ти излезе някаква неприятна грешка, която няма да е от рода на Няма такъв файл или нещо от сорта, мисля, че щеше и директорията да ти изпеше.. и така де ако сложиш @, тоест

$promenliva=@unlink(asdsd);

можеш да си направиш една проверка

if ($promenliva) {
//командата се изпълнява..
}
else
{
echo "Няма такъв файл";
}

и така вместо тази неприятна грешка, ти си получаваш нещо съвсем обикновенно, което говори добре и за теб :)
 
Но попринцип този подход не би трябвало да се ползва и се води като лоша практика. Главно поради 2 причини:
1) това е много бавна операция, защото реално вътрешно php слага флаговете за показване на грешката, и после отново ги маха, след като изпълни кода маркиран с @
2) е че е поущравя писаното на лош код, защото преди да изтиеш файл на пример, трябва да се направи проверка дали може да се се изтрие и дали съществува.
 

Back
Горе