Autor Zpráva
tester
Profil *
Ilustruju problém:
S::get()->inputs = array();
$in = S::get()->inputs;
if (isset($_POST))
  while (list($name, $value) = each($_POST))
    $in[$name] = $value;
print_r($in);
print_r(S::get()->inputs);
S::get()->inputs je prázdné. Tzn. $in = S::get()->inputs; pouze zkopírovalo obsah objektu. Šlo by uložit do proměnné ukazatel na objekt?

Bez ukazatele se to musí řešit takto:
S::get()->inputs = array();
$in = S::get()->inputs;
if (isset($_POST))
  while (list($name, $value) = each($_POST))
    S::get()->inputs[$name] = $value;
print_r(S::get()->inputs);
$in=S::get()->inputs
print_r($in);
Jenže to znamená ve smyčce mnohokrát volat funkci get() a prodloužit tak dobu zpracování. Také to znamená že zkráceninu $in bych mohl používat jen pro čtení ne pro zápis do pole navíc po jakékoliv změně do inputs bych musel zase překopírovat obsah $in = S::get()->inputs;.
Keeehi
Profil
Tak ty pole jen sjednoť.
nethor
Profil
No, hlavně myslím, že bys neměl používat 'get()' metodu pro přiřazení,
ale připsat do třídy a používat pro přidání metodu "add()".
Optimalizaci pro rychlost je výhodnější pořešit uvnitř třídy: set(), add() pouze vkládá data a get() pouze získává, to běh scriptu znatelně urychlí.
Libje
Profil
Presne tak, pouzitim merge problem obchazis a neresis. Spravnejsi je tedy pridat metody add()

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: