Autor Zpráva
fritol33
Profil
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;
ale nevím, jestli existuje nějaký fígl/popřípadně rozdělit na dvě?
Děkuji za odpověď.
Ps: Počítáme do budoucna s menším filtrem vstupních dat, proto vůbec vznikla funkce.
Alphard
Profil
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
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
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
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
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.

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:

0