+156
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
<?php
// Код курильщика
for ($i=1;$i<8;$i+=2){
if($i==$row->ShipingTime) $result .="<option selected value='".$i."'>".$i."</option>";
else $result .="<option value='".$i."'>".$i."</option>";
if($i==7) {$i+=3;
if($i==$row->ShipingTime) $result .="<option selected value='".$i."'>".$i."</option>";
else $result .="<option value='".$i."'>".$i."</option>";
}
else {
if($i==10) {
$i+=4;
if($i==$row->ShipingTime) $result .="<option selected value='".$i."'>".$i."</option>";
else $result .="<option value='".$i."'>".$i."</option>";
}
else {
for ($i=20;$i<45;$i+=10){
if($i==$row->ShipingTime) $result .="<option selected value='".$i."'>".$i."</option>";
else $result .="<option value='".$i."'>".$i."</option>";
if($i==40){$i+=20;
if($i==$row->ShipingTime) $result .="<option selected value='".$i."'>".$i."</option>";
else $result .="<option value='".$i."'>".$i."</option>";
$i+=30;
if($i==$row->ShipingTime) $result .="<option selected value='".$i."'>".$i."</option>";
else $result .="<option value='".$i."'>".$i."</option>";
}
}
}
}
// Код здорового человека (провели рефакторинг)
$ST_variants = array('1', '3', '5', '7', '10', '14', '20', '30' , '40', '60', '90');
foreach ($ST_variants as $value) {
print "<option ". ($value==$row->ShipingTime) ? 'selected' : '' ; ." value='".$value."'>".$value."</option>";
}
Заказчик хотел получить <select> со списком значений: '1', '3', '5', '7', '10', '14', '20', '30' , '40', '60', '90'...
Запостил: govnokoder2,
16 Марта 2015
Fike 16.03.2015 20:21 # 0
bormand 16.03.2015 20:27 # 0
Да нафиг тут спринтф? С интерполяцией наглядней будет, чем с ним:
Fike 16.03.2015 20:29 # 0
bormand 16.03.2015 20:31 # 0
Да так то можно хоть обобщённый компонент для комбиков написать. Но надо ли это в этой задаче?
Fike 16.03.2015 20:27 # 0
рефакторинг-то хоть запускался вообще?
govnokoder2 16.03.2015 22:15 # 0
Fike 16.03.2015 22:41 # 0
wvxvw 16.03.2015 20:34 # +1
bormand 16.03.2015 20:36 # +1
Зато в два раза больше кода и раза в два больше мусора в куче :3
P.S. И да, оригинальный код толерантен к кривому или пустому $row->ShippingTime.
wvxvw 16.03.2015 20:45 # 0
На счет памяти - хз. Может можно придумать какой-то способ похожий на with-output-to-string, какой-нибудь ob_buffer_start или как-оно там.
Stallman 16.03.2015 21:39 # +3
Fike 16.03.2015 22:42 # 0
- Говно.
bormand 17.03.2015 06:13 # +2
guest 16.03.2015 23:15 # 0
loki90 18.03.2015 11:35 # +1