Autor Zpráva
Milan1236000
Profil
Zdravím, mám tento kus kódu:
if(podmínka1)
{
  if(podmínka2) break;
  něco1;
}
else
{
  něco2;
}
něco3;

Můj dotaz zní, co se stane po vykonání příkazu break;. Vyskočí se z toho cyklu úplně a bude se pokračovat na něco3, nebo se bude pokračovat do části else?
abc
Profil
break zastavuje cyklus, ve kterém je volán - s if-em nemá nic společného, není tedy důvod, aby se pokračovalo do "něco2", ale bude se pokračovat do "něco3"
Milan1236000
Profil
abc:
Fajn, v tom případě musím vymyslet jiný algoritmus. Díky za odpověď. :)
Keeehi
Profil
Milan1236000:
Jelikož tam nemáš žádný cyklus, php skončí Fatal errorem. Pokud toto všechno je v cyklu, tak jste ty i abc vedle. Po break se neprovede nic. Ani něco1 ani něco2 a ani něco3. Vykoná se až to, co je za cyklem.
Milan1236000
Profil
Keeehi:
Aha, asi jsem to teda špatně napsal. Chtěl jsem právě docílit toho, že když v tom prvním if-u bude podmínka2 true (něco1 se nevykoná), tak aby se skočilo do toho else a pak až teprve pak na něco3.
Tomáš123
Profil
Milan1236000:
Podmienka nemusí byť úplná a môže byť negovaná aj zložená.

Neviem, či som správne pochopil tvoj popis v [#5], ale nepotrebuješ to takto:
if(podmínka1 && !podminka2) {
  něco1;
}
něco2;
něco3;
Milan1236000
Profil
Tomáš123:
V mém případě to takhle udělat nelze. Potebuji mít na stránce buď něco1, nebo něco2 a pak, ať už tam je cokoli, až něco3.
Sice to mám prasáckým způsobem, ale už mi to funguje.
Lonanek
Profil
Milan1236000:
Potebuji mít na stránce buď něco1, nebo něco2 a pak ať už tam je cokoli, tak něco3.
Pak je dle mého špatně napsaný Váš příklad, protože pokud je Podmínka1 splněna a také je splněna Podmínka2, pak budě něco1, pokud nebude splněna Podmínka1 bez ohledu na Podmínka2, bude něco2 a vždy bude něco3.

Nevíme co pro platnou Podmínka1 se má vypsat.
Můžu pouze tipovat:
if (Podmínka1)
{
  něco3;
 } elseif (Podmínka2) {
   něco1;
 } else {
  něco2;
 }
Vše záleží na logice podmínek.
Jan Tvrdík
Profil
Milan1236000:
Sice to mám prasáckým způsobem, ale už mi to funguje.
Když napíšeš, jak to máš teď, tak určitě vymyslíme, jak to vyřešit pěkně.
Milan1236000
Profil
V jednom php souboru se provede kontrola, zda požadovaná položka v databázi existuje:
...
if (isset($_GET['skladba']))
{
  ...
  if(...pokud jo...) include 'skladby_skladba.php';
  else include 'skladby_polozky.php';
}
else include 'skladby_polozky.php';

Původně jsem to měl takhle, ale nechtěl jsem to mít ve více souborech, takže jsem to všechno vrazil do jednoho souboru, kde ale musím mít 2x ten samý kód (je označený). Líp mě to nenapadlo.
Lonanek
Profil
Např.:
...
if (isset($_GET['skladba']) AND ...pokud jo...)
{
  include 'skladby_skladba.php';
}
include 'skladby_polozky.php';
Milan1236000
Profil
Lonanek:
Takto je to dobrý nápad, jen ještě budu tedy muset před to přidat jednu podmínku, která to jen ověří v db a pak to tahle rozhodne. Díky. ;)
---
Tak jsem to tak nakonec udělal a funguje to skvěle. :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: