Autor | Zpráva | ||
---|---|---|---|
fritol33 Profil |
#1 · Zasláno: 14. 5. 2010, 12:50:51 · Upravil/a: fritol33
Zdravím všechny programátory.
Řeším teď takový menší problém s efektivitou funkce. Konkrétně jde o tuhle funkci (pro lepší pochopení nechám aj komentáře): /** * Zkontroluje promennou v GET/POST * Kontroluje jestli je definovana/prazdna, nastavi $value defaultni null. * @param Array $get Nazev promenna. * @param int $type O jakou metodu jde, defaultně get (POST = 1) * @param Array $value Volitelna hodnota promenne, kdyz je prazdna * @return Array vraci hodnotu promennych */ public function _inputControl($get,$type = 0,$value = null) { $return=null;$method = ($type == 0) ? $_GET : $_POST; if(is_array($get)) { foreach ($get as $key => $val) { if((!isset($method["$val"]))||(empty($method["$val"]))) { $return[$key] = isset($value[$key]) ? $value[$key] : null; } else { $return[$key] = $method["$val"]; } } } else { return ((!isset($method["$get"]))||(empty($method["$get"]))) ? $value : $method["$get"]; } return $return; } Neměli by jste nějaký nápad na "zefektivnění"? Funkce je provedena cca 30x za 10sec, takže proto ji řeším. Podle mne je neefektivní překopírovávat všechny proměnné v $method = ($type == 0) ? $_GET : $_POST; Děkuji za odpověď. Ps: Počítáme do budoucna s menším filtrem vstupních dat, proto vůbec vznikla funkce. |
||
Alphard Profil |
#2 · Zasláno: 14. 5. 2010, 14:24:42
Podle mne je neefektivní překopírovávat všechny proměnné v
$method = ($type == 0) ? $_GET : $_POST; Můžete zkusit: if($type) { $method =& $_POST; } else { $method =& $_GET; } „Funkce je provedena cca 30x za 10sec“ Není chyba někde jinde? Jak velký je vstup? Mně to stihne cca 10000x za sekundu. |
||
bohyn Profil |
#3 · Zasláno: 14. 5. 2010, 16:57:24 · Upravil/a: bohyn
fritol33:
Ternální operátory bych nahradil za klasické if/else jak radí Alphard, ale bez referencí. Jinak žádné moc velké zrychlení nevidím. |
||
fuckin Profil |
#4 · Zasláno: 14. 5. 2010, 17:01:02
fritol33:
„Funkce je provedena cca 30x za 10sec“ Tak to teda pak nechápu proč řešíš nějaké zefektivnění, když to voláš takto málo. |
||
fritol33 Profil |
#5 · Zasláno: 14. 5. 2010, 17:41:51
Děkuji moc za vaše rady. Nechci se pouštět do žádných větší diskusí, proto raději No respond ok? :o)
PS: Vstupních dat je "hafec". |
||
fuckin Profil |
#6 · Zasláno: 14. 5. 2010, 18:36:02
fritol33:
„PS: Vstupních dat je "hafec".“ Sorry, ale nedá mně to na toto nereagovat. Tak hafo dato přes GET určitě nepošleš. To zaprvé. Zadruhé přes POST možná hafo pošleš, ale ne tolik aby to udělalo nějaký problém či zpomalení. Si třeba zkus poslat desítky či stovky parametrů, stopni si čas a uvidíš, že mluvíš kraviny. |
||
Časová prodleva: 13 let
|
0