Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pytanie o klasy
Forum PHP.pl > Forum > PHP
letus
Witam! Klasami bawię się od niedawna (właściwie kilku godzin smile.gif) i mam pytanie. No więc utworzyłem klasę a w niej pewną metodę(funkcję) nazwijmy ja a() która zwraca wartość TRUE lub FALSE, i teraz dalej pisze kolejna metodę(funkcję) niech to bedzie b() ale chcę się w niej odwołac do a() czyli po ludzku, jeśli a() zwróci TRUE to b() zrobi coś, a jak a() zwróci FALSE to b() zrobi coś innego. I moje pytanie czy wogule da się coś takiego zrobić? Jeśli tak to w jaki sposób?
rze-X-nik
Jeżeli się nie mylę, to chodzi Ci o zwracanie wartości z funkcji wewnątrz klasy. Otóż nie możesz zrobić tego jak 'zwykle' czyli podając nazwę funkcji. Musisz uzupełnić to o 'this'':

[php:1:4f95fbc29a]<?php
//Wewnatrz Twojej klasy
$a = $this=>JakasFunkcja();
//
?>[/php:1:4f95fbc29a]

Sprawdź tylko czy '$this=>' jest dobrze, bo dawno się tym ostatnio bawiłem.

Pozdrówka smile.gif
letus
$this-> biggrin.gif
Dzięki, działa smile.gif
rze-X-nik
Kilka godzin temu przypomniałem sobie jak to miało być. Cieszę się, że mogłem pomóc.
lolek09
Ja mam problem trochę innej natury, ale do rzeczy.

Mam obiekty

Kod
+X

+-Y

+--Z


Jak z obiektór Z bądź Y wywołać metodę obiektu X? Czy to wogóle możliwe?

-----
Dobra, sam już do tego doszedłem:
[php:1:d226d4c606]<?php

class Root {
function getSomething() {
return $this->something;
}
};

class Father extends Root {
function getSomething() {
return parent::getSomething();
}
};

class Baby extends Father {
function getSomething() {
return parent::getSomething(0;
}
};
?>[/php:1:d226d4c606]

Jeśli jestem w błędzie, to proszę by mnie z niego wyprowadzono.
FiDO
Mozesz tak, ale z pomoca parent dostaniesz sie tylko do klasy rodzica bezposredniego, jak masz 3 poziomy tak jak tutaj i z ostatniego potomka chcesz sie dostac do klasy bazowej to sprobuj tak:
[php:1:abb6e9be90]<?php

class Root {
function getSomething() {
return $this->something;
}
};

class Father extends Root {
....
};

class Baby extends Father {
function getSomething() {
return Root::getSomething();
}
};
?>[/php:1:abb6e9be90]
lolek09
Teraz mam jednak jeszcze jedną wątpliwość. Tak jest jeśli klasy dziedziczą po sobie. Czy jednak można używać parent:: jeśli klasy nie dziedziczą a tylko zawierają się w sobie.
Chodzi mi tu dokładniej o sytuację, że mam klasy.

+Root
+-Input
+-Galeria
+--Album
+---Zdjecie

To jest schemat jak się w sobie zawierają, a nie jak dziedziczą. Chodzi mi o to, że nie ma żądnych przesłanek żeby zdjęcie dziedziczyło np po albumie. I teraz mam takie obiekty, i jak ze Zdjęcie wywołać metodę obiektu Input?
DeyV
[php:1:8bfa52b38c]<?php
class Album
{
function Album()
{
$this->Zdjecie = new Zdjecie;

$this->Zdjecie->doSomthing();
}

var $Zdjecie;
}
?>[/php:1:8bfa52b38c]
Mówisz o czymś takim?
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.