Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: funkcja zwracająca obiekt
Forum PHP.pl > Forum > PHP
damianooo
Witam. Mam następujący problem. Potrzebuję aby wartość zwracana przez funkcję była obiektem. Jest jednak problem bo funkcja nie zwraca mi nic , var_dump wywala mi NULL. Co robię źle ?

Oto mój kod:

  1. class a{
  2. static public function b(){
  3. $a = 4;
  4. return $a;
  5. }
  6. }
  7.  
  8. function c(){
  9. $d = new a();
  10. return $d;
  11. }
  12.  


Dzięki
Szymciosek
Ale zamieszałeś...

$c nie istnieje...

  1. class a{
  2. static public function b(){
  3. $a = 4;
  4. return $a;
  5. }
  6. }
  7.  
  8. function c(){
  9. $d = a::b();
  10. return $d;
  11. }
  12.  
  13. var_dump(c());


Teraz wyjaśnienie:
1) "class a" posiada jedną statyczną metodę "b", więc odwołanie do nich nie wymaga instancji klasy, a więc wystarczy "a::b()"
2) "function c()..." żeby coś zwróciła najpierw musi zostać wywołana.

Ogólnie tutaj musisz znać pojęcia:
- Metody statyczne
- Klasa (oop się kłania)
- Odwołania do metod
- używanie return

i chyba tyle.
damianooo
Trochę namieszałem , ale tylko trochę , ponieważ tam nie chciałem "static", niechcący napisałem (wiem o co chodzi ze static wink.gif , więc spoko ) oraz tak jak pisałem w poprzednim poście funkcja miała mi zwracać obiekt, a Ty mi zwracasz wynik funkcji, ale luzik . Faktycznie błąd miałem również w samym wywołaniu funkcji w var dumpie smile.gif .Wywoływałem tak $a zamiast tak a() . O to mi chodziło:

  1. class a
  2. {
  3. public function b()
  4. {
  5. $a = 4;
  6. return $a;
  7. }
  8. }
  9.  
  10. function c()
  11. {
  12. $d = new a();
  13. return $d;
  14. }
  15.  
  16. var_dump(c());



To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.