@ - вредный оператор?

korvin0

моська
@ - вредный оператор?

Уважаемые! Полазив по форуму, я обнаружил, что то тут, то там проскальзывают фразы типа "не используйте @" и т.п. А собсна почему не использовать? Например в таком контексте @ экономит целую строчку!
Без @:
PHP:
$a=0;
$a++;
С @:
PHP:
@$a++;
 

IBSN

Новичок
оператор @ глушит ерроры, не использовать его для того чтобы код был правильным имхо без ерроров
 

Crazy

Developer
Re: @ - вредный оператор?

Автор оригинала: korvin0
Например в таком контексте @ экономит целую строчку!
Без @:
PHP:
$a=0;
$a++;
С @:
PHP:
@$a++;
Дружок, пиши просто "$a=1;". Это экономит тебе еще один символ. :D
 

Фанат

oncle terrible
Команда форума
korvin0
Если ты не желаешь знать, что делает, и как работает твоя программа, то да, экономит.
Если тебя устроит, что $a будет иметь начальное значение не 0, а какое-то другое, оставшееся от предыдущего использования этой переменной, то да - экономит.

Cсылка по теме: [f]globals[/f]
Информация для размышления: как ты думаешь, вообще - разработчики пхп сделали этот нотайс, который ты подавляешь собакой, просто так, для собственного развлечения? Специально, чтобы ты собаку ставил? или чтобы твой код растянуть? А может быть, все-таки, не считать себяы умнее их, и делать правильно, как тебе нотайс советует, а не затыкать ему рот собакой?

Если уж так хрочется писать "коротко" (хотя я на спор найду в твоем коде места, которые моожно сократить в 2-3 раза, написав их правильно, РЕАЛЬНО СОКРАТИВ программу, а не сократив за счет того, что она будет выдавать ошибку) - настрой Error_reporting ОДИН РАЗ, чемставить собаку в десятках мест.

-~{}~ 22.03.04 14:54:

StUV
приводить эту ссылку в ответ на такой вопрос неправильно.
очень жаль, что у тебя не хватает мозгов ни понять, о чем там шла речь, ни прочесть нормально этот вопрос.
Только иможешь, что увидев знакомые слова, дать ссылку.
А собственного мозга, чтобы ответить, нету.
 

su1d

Старожил PHPClubа
как ты думаешь, вообще - разработчики пхп сделали этот нотайс, который ты подавляешь собакой, просто так, для собственного развлечения
ага! значит они собаку сделали для собственного развлечения?!
ведь если не одно, то другое, верно? =) гы-гы

ок, по теме: собака нужна. точка.

не всегда, а в особых случаях, когда девелопер берёт на себя обработку ошибок.
пример случая? кодится библиотека/фреймворк со своим собственным обработчиком ошибок.

обычному кодеру собака зачастую не нужна, хотя в некоторых случаях удобнее (sic!) её использовать, чем не.

слова "всегда", "никогда" и "вообще" -- считаю здесь неприемлемыми всилу их чересчур большой категоричности.
 

Макс

Старожил PHPClub
su1d
собака - вредный для новичков оператор.
Профи сам разберется, можно ли ее использовать (и если можно, то в каких случаях).
А новички пусть пока учаться писать "чистый" код. Они ведь будут использовать собаку, но при этом никакого собственно обработчика ошибок не напишут
 

korvin0

моська
Спасибо за то, что нашли время и объяснили мне, идиоту, что к чему!
 

Фанат

oncle terrible
Команда форума
su1d, молодец, возьми с полки пирожок.

О том, что слова "никогда" и "всегда" впервые в этом топике встречаются только в твоем посте, а так же о том, что Ситников, задолго до твоей прочувствованной речи, в топике по приведенной ссылке дал убедительный пример не то, чтобы нужности, но небольшого удобства, даваемого собакой - обо всем этом, равно как и о том, что все эти вещи никак не соотносятся с вопросом, который был задан - мы просто помолчим.
Вы - отцы, цмсы пишете и клуб могучими плечьми поддерживаете. А я всего-то специалист по ответам на форуме. Куда уж мне.
 

korvin0

моська
Ну вот кстати в теме по брошенному тут линку есть слова DIM'ы про то,что @ надо использовать в случае @foreach ($a as $v) {...}. Так вот что-то у меня эта связка @ + foreach не проходит, ошибку выдает. У меня стоит php 4.3.3, apache 2.0.47, Win32. Текст ошибки:
"Parse error: parse error, unexpected T_FOREACH in J:\WWW\index.php on line 2"
И еще на эту же тему. В той же самой теме говорили о переменной $php_errormsg. Так у меня ее похоже просто нет! В чем дело? Может ее надо ка-то по-особому использовать?
Объясните, пожалуйста, если Вам не сложно, эти 2 глюка.
 

hayk

Новичок
korvin0
Я думаю что у тебя даже просто foreach будет выдавать ту же самую ошибку.
Как я узнал? Экстрасекс :)

Со вторым глючком все намного проще: я умею читать (пародоксально не правда ли?) и еще умею иногда пользоваться поиском (это чтобы не читать мануал с первой страницы).
Итого (на всякий случай я выделил ключевое место): $php_errormsg is a variable containing the text of the last error message generated by PHP. This variable will only be available within the scope in which the error occurred, and only if the track_errors configuration option is turned on (it defaults to off).
 

Demiurg

Guest
korvin0
ты еще и на апаче втором все делаешь ? ужас.
 

korvin0

моська
hayk
Объясни, а почему у меня "даже просто foreach будет выдавать ту же самую ошибку". Это сарказм или серьезно? Если 2-ое, то ничего он не выдает.
Demiurg
А на каком посоветуете?

-~{}~ 22.03.04 23:33:

Забыл поблагодарить hayk'а за $php_errormsg. Спасибо! В следующий раз точно первым делом в manual полезу.
 

fixxxer

К.О.
Партнер клуба
[m]foreach[/m]
Note: foreach does not support the ability to suppress error messages using '@'.
 

korvin0

моська
Значит, DIMA ошибся?

-~{}~ 23.03.04 08:54:

Demiurg
Не могли бы вы объяснить, чем более старая версия apache лучше одной из последних?
 

korvin0

моська
Хоть у меня никаких глюков с Apache 2.0.47 целый год не было, но я решился поставить Apache 1.3.29. Подойдет?
 
Сверху