as897 Публикувано Януари 30, 2011 Report Share Публикувано Януари 30, 2011 извинявам се но да попитам още нещо: <?php $a = 1; $b = 10; $c = 6; if ( $c==11 && $a == 1 || $b == 110 ) { echo "условието е вярно"; } else { echo "условието не е вярно"; } ?> <?php $a = 1; $b = 10; $c = 6; if ( $c==11 && $a == 1 || $b == 10 ) { echo "условието е вярно"; } else { echo "условието не е вярно"; } ?> Защо дават различен резултат? нали използвам оператора ИЛИ ? не е задължително и ДВЕТЕ : $a и $b да са верни ? Цитирай Link to comment Сподели другаде More sharing options...
InsectEater1 Публикувано Януари 30, 2011 Report Share Публикувано Януари 30, 2011 Ами израза ти в началото си дава false по принцип където е AND (&&), така че определяща е последната част след ИЛИ - то (двете вертикални черти) В първия случай имашfalse AND true OR false, което се свежда до false OR falseа във вторияfalse AND true OR true, което се свежда до false OR true Цитирай Link to comment Сподели другаде More sharing options...
as897 Публикувано Февруари 2, 2011 Author Report Share Публикувано Февруари 2, 2011 ок, това го разбрах сега имам друг проблем: <?php while ($a=!5) { $a=rand(1, 110); echo $a .'<br />'; } ?> защо не работи ? Цитирай Link to comment Сподели другаде More sharing options...
InsectEater1 Публикувано Февруари 2, 2011 Report Share Публикувано Февруари 2, 2011 ок, това го разбрах сега имам друг проблем: <?php while ($a=!5) { $a=rand(1, 110); echo $a .'<br />'; } ?> защо не работи ? а=!5 се тълкува така: а да бъде равно на НЕ 5, което се свежда до a да бъде равно на false и понеже резултатът от това ПРИСВОЯВАНЕ е false, никога няма да влезеш в този цикъл Предполагам, че имаш предвид за условие следното:a!=5 което вече си е ПРОВЕРКА за условие дали а не е равно на 5 разменил си местата на удивителната и знака за равенство. Цитирай Link to comment Сподели другаде More sharing options...
VIS Публикувано Февруари 2, 2011 Report Share Публикувано Февруари 2, 2011 Аз не разбирам от PHP ама то тук се свежда до просто програмирнае. И аз проверих, че имаш грешка в while (условието). Ако го поправиш ще генерираш постоянно рандом числа на нов ред докато не стигне 5 и тогава ще спре. Но ще спре, когато стигне 5 - също така и ще го покаже заради това, че на 1вия ред в цикъла ти е $a=rand(1, 110); и така се генерира 5, отпечатва се и тогава се връща пак на проверката, прави я и спира. Надявам се това да е и целта ти Предполагам това ти е ясно, няма нужда да се опитвам да обяснявам ;P (все пак може да ползваш цикъла for)Edit: Ако все пак не искаш да ти изписва 5, след като стигне до него:<?php while ($a!=5) { $a=rand(1, 110); if ($a == 5) echo ""; else echo $a .'<br />'; } ?>Въх, това Php-то не е толкова сложно Цитирай Link to comment Сподели другаде More sharing options...
Препоръчан пост
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.