Autor Zpráva
YoSarin
Profil
Zdravím, mám následující třídu (zjednodušeně):


class Registered{
/*
* proměnné + konstanty
*/

public function fill($array){
foreach($array as $key => $value){
$this->$key = strtolower($value);
}
echo "OK1";
return "OK2";
}

public function loadByNick($nick){
$this->nick = strtolower($nick);
$array = $this->db->getArray("SELECT * FROM registered WHERE nick='$nick' LIMIT 1;");
if($array){
echo $this->fill($array);
$this->new = false;
}
else throw new Exception("Uzivatel s prezdivkou $this->nick neexistuje.");
}

Problém je ten, že kód vypíše (po zavolání metody loadByNick) pouze
OK1
Vypadá to, jako by nedošlo n návratu z funkce - naprosto netuším kde by mohla být zrada... Určitě to bude nějaká nesmyslná prkotina, ale mě už fakt nic nenapadá.
Jestli někdo tušíte o co jde, sem s tím...
Yo'Sarin
dracek
Profil
Zkus místo echo použít var_dump ($this->fill($array)).

Možností je, že někde v tvém (zkráceném) skriptu se to prostě k return "OK2" nedostane ...
YoSarin
Profil
Už jsem to nějak vyřešil, ale nemám potuchy jak. Nedovedu se představit nic co by zaseklo výstup mezi tím return "OK2" a echem návratové hodnoty. Je možné že se tam v nějaký nevhodný okamžik špatně přistupovalo ke statické proměnné (identifikátoru db spojení) což vedlo k nějaké chybě a konci skriptu...
Ale taky se možná jen ti indiáni schovaní v týpý rozhodli chvíli tahat za špatné šňůrky... nevím.
dracek
Profil
Možná. Řekl bych, že php opět zklamalo. Toto se mi stává, když v c++ udělám něco *velmi* ošklivého.

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