Эх, на Java бы вам попрограммировать...Можно написать и так: ( $var%2 )
мне ближе то, что я написал, т.к. 1 нечетное и записьНеобходимо только отметить, что если в последнем бите 0, то это число четное, а если 1 - то нечетное
Из этой цитаты видно что использовать выражения в условиях допустимо, и кроме этого я считаю что такая сокращенная запись более удобна для восприятия так как не надо смотреть, а с чеме же там будет сравниваться переменная (в нашем случае выражение).Если выражение в инструкции if не равно нулю, выполняется первая инструкция, в противном случае - вторая. Отсюда следует, что в качестве условия могут использоваться любые арифметические выражения и выражения с указателями. Например если x целое то if (x) означает if (x != 0)
Не буду тебя уговаривать, ибо, судя по высказыванию, всерьез ты программированием на C не занимался.Автор оригинала: phprus
Почитал Страуструпа. Бить палкой надо вас за такие высказывания.
$var % 2 дает числовой результат. if ожидает булевское выражение. В PHP встроено множество правил неявного молчаливого преобразования типов и одно из них здесь сработает.Автор оригинала: denver
Чего такого в ($var%2)
Прелестно. Ну значит вот так будет абсолютно верно:$var % 2 дает числовой результат.
if ((boolean)($var % 2)) ...
Кроме этого в С НЕТ типа bool и соответственно if не может ожидать того, чего не поддерживает язык.Если выражение в инструкции if не равно нулю, выполняется первая инструкция, в противном случае - вторая. Отсюда следует, что в качестве условия могут использоваться любые арифметические выражения и выражения с указателями. Например если x целое то if (x) означает if (x != 0)
Даже если и перескажу то это никак не повлияет ибо прав я. не верите почитайте умные книжки написанные умными людьми. (Например тем же Страуструпом) Или аргументируй почему я не прав.Но если будешь вдруг устраиваться на работу по этому профилю -- перескажи эту историю на собеседовании.
Это будет не "абсолютно верно", а "уже менее криво". В отличие от ($var % 2 == 0), который является совершенно ясным и понятным.Автор оригинала: denver
Прелестно. Ну значит вот так будет абсолютно верно:
PHP:if ((boolean)($var % 2)) ...
Эта особенность сделана для того, чтобы новичкам было легче писать простые скрипты.Только ни к чему это, когда особенность PHP в том что приведение делается автоматом.
Когда перестаешь писать простые скрипты -- кончается и удовольствие.Так почему бы не получать от этого удовольствие?
Так как IF просто проверяет численное значение выражения, то возможно некоторое сокращение записи. Самой очевидной возможностью является запись
IF (выражение)
вместо
IF (выражение !=0)
обрати внимание: "возможно", а не "следует".
Упомянутые тобой книги -- учебника языка C/C++ соответственно, а не руководство по программированию на C/C++. Почувствуй разницу.Автор оригинала: denver
короче хватит подчиненных палкой бить, бейте их связкой страуструп-керниган повторяя:
Тогда пиши на J. Охренительно компактный код. Только нефига потом не прочитаешь.Автор оригинала: Sender
если писать все подробно и правильно, со всеми проверками и т.п., то код пухнет на глазах, и это очень мешает