ktoś Napisano Lipiec 28, 2009 Zgłoś Share Napisano Lipiec 28, 2009 Piszę sobie jakąś funkcję w php (w założeniach php5). Zależy mi na tym, żeby otrzymać wynik w postaci obiektu zdefiniowanej przeze mnie klasy. Niby problem nie jest poważny, ponieważ dostępne są referencje. Mogę podczas wywoływania funkcji przekazać jej referencję do utworzonego wcześniej obiektu, a samej funkcji kazać go tylko zmodyfikować, jednak uważam to za rozwiązanie mało eleganckie. O referencji trzeba pamiętać, poza tym zwracanie wyniku przez modyfikację parametrów jest raczej nietypowe dla funkcji. function moja_funkcja () { $obj->zmienna='cokolwiek; } $obj = new moja_klasa; moja_funkcja (&$obj); Jeżeli obiekt składa się z samych zmiennych, to wszystko działa.Tylko, że do tego wystarczy tablica asocjacyjna, a ja chcę, żeby to miało rówież funkcje. A w tedy ten kod się _po_prostu_ nie wykonuje. Link do komentarza Udostępnij na innych stronach More sharing options...
DevPort Napisano Lipiec 29, 2009 Zgłoś Share Napisano Lipiec 29, 2009 Nie wiem co robisz nie tak... może to dla tego, że nie pokazałeś budowy swojej klasy. Przynajmniej u mnie taki kod działa jak tu zamieściłem: PHP5 <? class moja_klasa { public $zmienna; public function testfuncinclass(){ return ' cokolwiek z klasy '; } } function moja_funkcja() { $a = new moja_klasa(); $a->zmienna = 'cokolwiek'; return $a; } $obj = moja_funkcja (); print($obj->zmienna); print($obj->testfuncinclass()); ?> Pozdrawiam Prawdziwy programista wiesza sie wraz ze swoim programem. Link do komentarza Udostępnij na innych stronach More sharing options...
ktoś Napisano Lipiec 29, 2009 Autor Zgłoś Share Napisano Lipiec 29, 2009 Dziwne... Już działa. Zdezorientowało mnie to, że nie było żadnej informacji o błędach. Złe wpisanie przecinka, średnika itp kończyło się zawsze wywaleniem stosownego komunikatu, lub przerywało wykonywanie kodu na błędnej instrukcji, a jak pisałem poprzedniego posta bez żadnego błędu nie wykonało się nawet zaczynające kod echo '1' Nie zapisałem tamtej deklaracji klasy, ale teraz dopisałem po nagłówku funkcji średnik, efekt był taki sam jak w tedy. W każdym razie dzięki Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.