Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2011, 19:57   #1
Русtam
Пользователь
 
Регистрация: 27.06.2011
Сообщений: 60
По умолчанию !$i=3

Здравствуйте, недавно нашел в сети скрипт и не могу понят его из за фрагмента
PHP код:
$i=1;
while(!
$i=3)// не могу понять вот этот фрагмент, как он правильно  читается   
{
$i++;// инкремент не выполняется(из этого следует что условие ложно ) но если после цикла вывести $i то она будет равна 3 

Полностью выкладывать весь код не имеет смысла , но (этот цикл должен выполняться так как он в скрипте оправляет запросы ) .
Русtam вне форума Ответить с цитированием
Старый 09.11.2011, 20:05   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

PHP код:
while($i 3
or
PHP код:
while($i != 3
Andkorol вне форума Ответить с цитированием
Старый 09.11.2011, 20:24   #3
Русtam
Пользователь
 
Регистрация: 27.06.2011
Сообщений: 60
По умолчанию

Вы просите уточнить я так понял ?
Русtam вне форума Ответить с цитированием
Старый 09.11.2011, 20:26   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Цитата:
Сообщение от Русtam Посмотреть сообщение
Вы просите уточнить я так понял ?
Нет - я написал, как должно быть, если вы хотите заставить ваш цикл работать.
Andkorol вне форума Ответить с цитированием
Старый 09.11.2011, 20:30   #5
Русtam
Пользователь
 
Регистрация: 27.06.2011
Сообщений: 60
По умолчанию

да нет заставить его работать не проблема (я хочу понять это условие )
Русtam вне форума Ответить с цитированием
Старый 09.11.2011, 20:39   #6
Русtam
Пользователь
 
Регистрация: 27.06.2011
Сообщений: 60
По умолчанию

я такое условие просто не встречал еще и я точно знаю что то что находилось в блоке цикла должно исполнятся. Может это о чем нибудь говорит (в самом коде много синтаксических ошибок было типа пропуска двоеточия я это к тому что этот код мог написать тот кто плохо знает PHP )
Русtam вне форума Ответить с цитированием
Старый 09.11.2011, 20:40   #7
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Вы уже его поняли:
Цитата:
// инкремент не выполняется(из этого следует что условие ложно )
А из этого следует, что причин этому только две - ошибка или говнокод.
Ошибка - потому, что так иногда бывает.
Говнокод - потому, что это верх идиотизма - писать в цикле с предусловием заведомо ложное условие.
Andkorol вне форума Ответить с цитированием
Старый 09.11.2011, 20:46   #8
Русtam
Пользователь
 
Регистрация: 27.06.2011
Сообщений: 60
По умолчанию

Спасибо я так и думал (пишут блин всякие и сиди думай че за херь написал )
Русtam вне форума Ответить с цитированием
Старый 14.11.2011, 09:34   #9
Xenm
Пользователь
 
Регистрация: 15.09.2010
Сообщений: 38
По умолчанию

Ну а что тут не понятного:
Код:
$i = 3 //присваиваем переменной i значение 3, т.е. теперь условие if($i) - истино(т.к. если в переменной не 0, не null и т.п. то она в условиях будет истиной)
ну а здесь ! идет отрицание истины, что соответствует - ложи
Другой вопрос зачем делать такой цикл?
Xenm вне форума Ответить с цитированием
Старый 14.11.2011, 15:34   #10
Русtam
Пользователь
 
Регистрация: 27.06.2011
Сообщений: 60
По умолчанию

Спасибо конечно что обратили внимание но условие не ($i = 3) а (!$i = 3) ))))
не стоит больше об этом говорить тем более что я уже пришел к выводу на счет этого условия (читайте выше ).
Русtam вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск