magrytos
26.03.2009, 15:17:44
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
26.03.2009, 15:24:23
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
26.03.2009, 15:34:11
<?php
class Klasa1 {
//obiekt klasy Klasa2
public $f;
/**
to Nie zadziała. zrob to w konstruktorze
$this->f = New Klasa2();
*/
//konstruktor!
function __construct() {
$this->f = New Klasa2();
}
function funkcja11() {
$this->f->funkcja22();
}
}
class Klasa2 {
function funkcja22() {
//jakis kod tutaj
}
}
$a = New Klasa1;
$a->funkcja11();
?>
Wyciągnij wnioski
magrytos
26.03.2009, 16:04:38
dzialczy elegancko. dzieki!!!
230005
26.03.2009, 16:05:57
Jeśli ci pomogliśmy, to kliknij "pomógł"

.