Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wywolywanie funcji, problem
Forum PHP.pl > Forum > PHP
magrytos
WItam. zaznaczam, ze jestem mega poczatkujacy.
no, wiec jak juz pisalem mam maly problem. otoz mam 2 klasy, klasa1 i klasa2. w pierwszej klasie mam jedna funkcje: funkcja11(), w drugiej 2 fcjie: funkcja21() i funkcja22(). klasa1 wygloda tak:

class klasa1{

$f = new Klasa2();

$f->funkcja21();

function funkcja11(){
...
$f->funkcja22();
}
}
Problem jest taki ze funkcja21() wywoluje sie elegancko. gorzej jest w przypadku funkcja22(), ktora siedzi w ciele funkcji11(). dostaje blad Fatal error: Call to a member function funkcja22() on a non-object. Moze mi ktos pomoc?
dzieki
230005
Jeśli używasz $f w ciele funkcji, to musisz go użyć w ten sposób $this -> f -> tutaj_twoja_funkcja(); Jeśli nie użyjesz słowa kluczowego $this, to php myślisz że odwołujesz się do zmiennej lokalnej, a nie obiektu :]
Maciekbjw
  1. <?php
  2.  
  3. class Klasa1 {
  4.  
  5. //obiekt klasy Klasa2
  6.    public $f;
  7.    
  8.    /**
  9.     to Nie zadziała. zrob to w konstruktorze
  10.     $this->f = New Klasa2();
  11.     */
  12.    //konstruktor!
  13.    function __construct() {
  14.        $this->f = New Klasa2();
  15.        }
  16.    function funkcja11() {
  17.        $this->f->funkcja22();
  18.        }
  19.  
  20.  
  21. }
  22.  
  23. class Klasa2 {
  24.  
  25.    function funkcja22() {
  26.        //jakis kod tutaj
  27.        echo 'jestem';
  28.        }
  29.        
  30.        }
  31.  
  32.        
  33.        $a = New Klasa1;
  34.        $a->funkcja11();
  35. ?>


Wyciągnij wnioski smile.gif
magrytos
dzialczy elegancko. dzieki!!!
230005
Jeśli ci pomogliśmy, to kliknij "pomógł" winksmiley.jpg .
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.