Autor | Zpráva | ||
---|---|---|---|
marek187 Profil |
Zdravim, chcel by som vediet, ako spravne riesit postupnost pri podmienkach. Ja to mam momentalne riesene napr. takto:
$ukon1 = ...; if ($ukon1) { $ukon2 = ...; if ($ukon2) { $ukon3 = ...; if ($ukon3) { $ukon4 =...; } } } Funguje to spravne, len ci nieje nato aj lepsi sposob, resp. ci sa to moze tykymto sposobom robit... |
||
mimochodec Profil |
A co takto?
<?php switch ($i) { case 0: echo "i equals 0"; $i = 1; break; case 1: echo "i equals 1"; $i = 2; break; case 2: echo "i equals 2"; $i = 3; break; } ?> |
||
marek187 Profil |
Cize malo by to vyzerat nasledovne?
switch ($i) { case 0: ukon1; $i = 1; break; case 1: ukon2; $i = 2; break; case 2: ukon3; $i = 3; break; case 3: ukon4; break; } ?> |
||
Alphard Profil |
#4 · Zasláno: 13. 6. 2015, 14:05:09
|
||
marek187 Profil |
Alphard:
Dam tu napr. takyto priklad: $copy = copy('../../ads/approve/' . $ad->image, '../../ads/' . $ad->image); if ($copy) { $unlink = unlink('../../ads/approve/' . $ad->image); } } |
||
Alphard Profil |
marek187 [#5]:
V tomto kódu se nedostáváte k nějaké 4. úrovni, jak jste původně naznačoval. Kdyby se to táhlo dál např. kontrola provedení unlink apod., může ty podmínky třeba napsat negativně a házet výjimky. if (!copy()) { throw new Exception(); } // vše ok, pokračujeme if (!unlink()) { throw new Exception(); } nebo část zanořené funkčnostni vyčlenit, jak jsem psal výše if (copy()) { clearFile(...); // a další kontroly budou skryté v té funkci } Ale uvádím to spíš jako alternativy, kód [#1] může být také dobrá volba. Pokud je zanoření dalších bloků logickým důsledkem předchozího a netrpí tím přehlednost, nevidím v tom problém. |
||
marek187 Profil |
#7 · Zasláno: 13. 6. 2015, 14:23:29
Alphard:
Cize takto je to logickejsie? copy('../../ads/approve/' . $ad->image, '../../ads/' . $ad->image); if (copy()) { unlink('../../ads/approve/' . $ad->image); } } |
||
Jan Tvrdík Profil |
#8 · Zasláno: 13. 6. 2015, 14:24:30
Nevím, jestli je úplně bezpečné na to odkázat, ale risknu to:
Základní kurz XVI. – „Zapovězené“ funkce |
||
petr 6 Profil |
#9 · Zasláno: 15. 6. 2015, 09:27:21
[#7]marek187:
„Cize takto je to logickejsie?“ Takto je to nesmysl. Takto by to dávalo smysl: if (copy('../../ads/approve/' . $ad->image, '../../ads/' . $ad->image)) { unlink('../../ads/approve/' . $ad->image); } ale to už by mi přišlo logičtější a především přehlednější to v [#5] (pominu teď to, že ti na konci přebývá pravá složená závorka) |
||
Keeehi Profil |
#10 · Zasláno: 15. 6. 2015, 11:03:49
Ještě je tu jedna možnost
ukon1 && ukon2 && ukon3; Konkrétně tedy copy('../../ads/approve/' . $ad->image, '../../ads/' . $ad->image) && unlink('../../ads/approve/' . $ad->image); |
||
Časová prodleva: 10 let
|
0