psychol1986
6.01.2010, 09:27:55
Witam, mam takie pytanie a w zasadzie problem, dopiero uczę się php, mam stworzoną klasę i w niej 3 funkcje jedna dodająca pliki, jedna usuwająca pliki i trzecia sprawdzająca czy plik który chcemy dodać albo usunąć (ona zwraca true albo false), no i chcialbym wykorzystać tą funkcję w dwóch innych, tylko jak się do niej odwoluje w dwóch pozostałych to wywala mi błąd ze nie ma takiej funkcji. Jak powinno się odwoływać do funkcji w innej funkcji?

Dzięki za pomoc.
kosmowariat
6.01.2010, 09:36:31
po pierwsze, jeśli masz klasę to masz metody ;] Mógłbyś zarzucic kawałek kodu, byłoby łatwiej stwierdzic ocb. Domyślam się że musisz użyc $this->nazwaMetody(); a prawdopodobnie używasz nazwaMetody();
psychol1986
6.01.2010, 09:42:57
Dokładnie ja używam NazwaMetody(); o to mi chodziło super dzieki!!!
Nie zapominaj, że metody klasy wymagają jednej rzeczy: obiektu, na którym działają. Wywołanie więc to nie
nazwa_metody(parametry)
ale
obiekt->nazwa_metody(parametry)
Czyli wywołanie, nawet we wnętrzu obiektu tej klasy musi się przez jakiś obnieść. Jeśli to ten sam, to powstał taki fajny obiekt o nazwie this
Meares
6.01.2010, 09:45:48
Bardziej obrazowo:
class ExampleClass {
public $ValuesArray = array();
private function ExampleFunctionOne($VarName, $VarValue) {
$this->ValuesArray[$VarName] = $VarValue;
}
public function SetValue($VarName, $VarValue) {
$this->ExampleFunctionOne($VarName, $VarValue);
}
}
Za wolno piszę.

Trzy wypowiedzi zdążyliście napisać. o.O
psychol1986
6.01.2010, 11:07:58
Super już rozumiem o co kaman:). A mam jeszcze jedno pytanie posrednio tez zwiazane z tym chodzi o zmienne. Jeżeli funkcja zwraca zmienna która nie jest przekazywana w parametrze to czy mogę ją wykorzystać w innej funkcji?
Fifi209
6.01.2010, 11:20:39
No a czemu nie? ;]
class test {
public function one() {
if ($this->two() == true) {
}
}
public function two() {
return true;
}
}
psychol1986
6.01.2010, 11:50:29
Nom tak ale jakby ta druga funkcja robila jakies obliczenia i chcialbym wyswietlic ich wynik?
nospor
6.01.2010, 11:53:11
zastanawiasz sie troche zanim napiszesz na forum czy strzelasz z nudów?
class test {
public function one() {
$zm = $this->two();
}
}
public function two() {
$obliczenia = 2+4+5;
return $obliczenia;
}
}
psychol1986
6.01.2010, 12:11:33
Dzięki za szybką odp. Wiem że to irytujące może ale naprawde nie dawno dopiero zacząłem ogarniac php i czasami wykladam sie nawet na prostych rzeczach.
kosmowariat
6.01.2010, 12:17:40
może i trochę irytujące, rybę już dostałeś, pora na wędnkę
http://pl.wikibooks.org/wiki/PHP oraz
http://www.google.pl/
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.