Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: odwolania do wlasciwosci
Forum PHP.pl > Forum > PHP
squid
mam sobie jakis hipotetyczny obiekt z pewna wlasciwoscia ktora powinna byc dostepna tylko z wewnatrz klasy:
  1. <?php
  2.  
  3. class klasa 
  4. {
  5. protected $tablica = array ( poziom1 = array ( poziom2 ) );
  6.  
  7.  
  8. }
  9.  
  10. ?>


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
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
no to jest jakis sposob ale musialbym kazda zmienna przeksztalcic na obiekt ato klopotliwe i kosztowne
bumba
Zapewne koledze chodzi o przeładowanie operatorów, ale nie wiem czy php cos takiego oferuje. Pozostaje zagnieżdżanie obiektów.
squid
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
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
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
Ale to pozwoli mu wydobyć tylko jeden argument :/
Jedyne wyjście, zagnieżdzać obiekty albo zrezygnować z "ładnego" zapisu :]
ActivePlayer
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.