squid
12.08.2005, 12:47:36
mam sobie jakis hipotetyczny obiekt z pewna wlasciwoscia ktora powinna byc dostepna tylko z wewnatrz klasy:
<?php
class klasa
{
protected
$tablica = array ( poziom1
= array ( poziom2
) );
}
?>
i chcem sie odwola do kolejny poziomow mniej wiecej tak:
$obiekt->tablica->poziom1->poziom2, oczywiscie zamiast tablica moze byc nazwa jakies metody do wydobywania danych ale rzecz w tym ze po kazdej -> chcialbym przechodzic do kolejnego poziomu tablicy.
Jakies pomysly jak to zrobic?
ikioloak
12.08.2005, 13:06:49
nie wiem czy dobrze zrozumialem ale jesli chcesz przechodzic po -> to w twoim przypadku wlasnoscia klasy 'klasa' powinna byc tablica obiektow innej klasy lub obiekt danej klasy ktory znow ma wlasnosc ktora jest obiektem itd. Wtedy bedziesz przechodzic po ->
squid
12.08.2005, 13:22:02
no to jest jakis sposob ale musialbym kazda zmienna przeksztalcic na obiekt ato klopotliwe i kosztowne
bumba
12.08.2005, 14:45:55
Zapewne koledze chodzi o przeładowanie operatorów, ale nie wiem czy php cos takiego oferuje. Pozostaje zagnieżdżanie obiektów.
squid
12.08.2005, 14:49:57
przeladowania operatorow ala C++ to w php raczej nie ma, probowalem iteratory tu zastosowac ale pewnie sie da tylko dosyc ciezko, chyba uzyje zapytania tylu xPath i eval();
bumba
12.08.2005, 14:52:34
Ale czy to nie będzie zbędne gmatwanie kodu? Poza tym używanie eval chyba nie jest zbyt eleganckie. Nie prościej zrobic metodę, która zwróci ci to co chcesz uzyskać?
ActivePlayer
12.08.2005, 22:12:18
w php5 masz cos takiego jak __get(); i __set(); w gecie ustawiasz co ma pobrac jesli odwołuje sie do jakiejstam nieistniejącej zmiennej. w secie co ma zrobic jak zapisujesz do jakiejs nieistniejącej zmiennej.
Vengeance
12.08.2005, 22:32:39
Ale to pozwoli mu wydobyć tylko jeden argument :/
Jedyne wyjście, zagnieżdzać obiekty albo zrezygnować z "ładnego" zapisu :]
ActivePlayer
13.08.2005, 18:19:30
zastanawiam sie... zastanawiam sie... przemysl czy nie wymyslasz za bardzo... moze i fajnie wyglada -> ale... po co Ci to... to TYLKO fajnie WYGLADA
Cytat
Ale to pozwoli mu wydobyć tylko jeden argument :/]
No nie do konca... mozna by zrobić małą rekurencje... (mysli)...
5 min pozniej...
a jednak nie można by...
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.