| 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: 11 let
|
|||
0