Autor | Zpráva | ||
---|---|---|---|
esfasfdas Profil * |
#1 · Zasláno: 25. 8. 2008, 00:16:28
realna ukazka classy:
class menu{ var $counter = 0; function generate_html($parrent_id=0,$menu_html=""){ if ((!isset($menu_html))||(!isset($parrent_id))){die("PHP internal error!");} global $DB; $menu_html .= "<ul>"; $ra=$DB->getAssoc("nejaky select"); foreach ($ra as $rsa){ $menu_html .= ("<li><a href='#'>".$rsa['name']."</a>"); $this->generate_html($rsa['id'],$menu_html); $counter++; echo("<b>");print_r($counter);echo("</b>\n"); $menu_html .= ("</li>"); } $menu_html .= "</ul>"; echo("<pre>");print_r($menu_html);echo("</pre>");echo("<hr />\n\n"); } } jakmile se zavola kvuli rekurzi $this->generate_html je counter vynulovat, tj. vytvori se ocividne nova stejna class, jak to resit pokud nechci pouzit proste samostatnou funkci mimo objekt? Zajima me to samozrejme ze studijnich ucelu :) |
||
bukaj Profil |
#2 · Zasláno: 25. 8. 2008, 00:33:55 · Upravil/a: bukaj
esfasfdas
Nepoužívej $counter, ale $this->counter (v případě, že vytváříš instanci pomocí operátoru new), nebo self::$counter (jestliže se jedná o statické volání). Pak se stav počítadla bude uchovávat v instanci, či třídě. |
||
esfasfdas Profil * |
#3 · Zasláno: 25. 8. 2008, 00:36:57
Tak to jsi me neudelal radost, funguje to jak ma, tudiz mam nekde zasadni chybu :((
|
||
esfasfdas Profil * |
#4 · Zasláno: 26. 8. 2008, 18:16:01
Jinak je to uplne klasika rekurzivni menu z db, kde je ID, id rodice, jmeno
a nekde mam botu a nemuzu prijit na to kde. Pritom jsem to uz urcite (nekolikrat)vyresil :( |
||
esfasfdas Profil * |
#5 · Zasláno: 26. 8. 2008, 18:27:02
„Tak to jsi me neudelal radost, funguje to jak ma, tudiz mam nekde zasadni chybu :((“
Teda je mi jasny, ze je to v tom predavani $menu_html, pokud to mlatim do $menu_html , ktery mam definovany pro cely objekt jako $this->menu_html tak je to OK. |
||
bukaj Profil |
#6 · Zasláno: 26. 8. 2008, 18:29:27
|
||
esfasfdas Profil * |
#7 · Zasláno: 26. 8. 2008, 18:32:06
tyjo musim letet, ale doslo mi, ze si vlastne muzu predavat vysledek te funkce co volam asi, tj. jedno, musim letet a potrebuju to ssebou, tak sem to holt udelal pres tu privatni prommenou v te class :( - neni to sice uplne dokonale, ale asi s tim dokazu zit :)
|
||
Časová prodleva: 16 let
|
0