Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dynamiczne tworzenie obiektu w obiekcie
deirathe
post
Post #1





Grupa: Zarejestrowani
Postów: 426
Pomógł: 32
Dołączył: 24.05.2007

Ostrzeżenie: (0%)
-----


Istnieje mozliwosc aby php dynamicznie tworzyl obiekt w obiekcie powiedzmy, chcialbym uzyskac taki efekt:
Kiedy wpisuje
  1. <?php
  2. $obiekt1->obiekt2->obiekt3 = "wartosc";
  3. ?>
, to automatycznie tworza sie obiekty obiekt2 zawarty w obiekt1 i obiekt3 zawarty w obiekt2.
Szukalem tematu na forum ale nie wiedzialem jakich slow kluczowych uzyc mo ze dlatego nic nie znalazlem wiec z gory przepraszam jezeli podobny temat juz istnieje.
A może istnieje jakis sposób przeładowania operatorów??

Ten post edytował deirathe 31.07.2008, 08:55:26
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
deirathe
post
Post #2





Grupa: Zarejestrowani
Postów: 426
Pomógł: 32
Dołączył: 24.05.2007

Ostrzeżenie: (0%)
-----


ok, prosze:
przykład:
  1. <?php
  2. class GetSet{
  3. private $object;
  4. private $values;
  5.  
  6. public function __get($name){
  7. $this->object = new GetSet();
  8. return $this->object;
  9. }
  10.  
  11. public function __set($name, $value){
  12. $this->values[$name] = $value;
  13. }
  14. }
  15.  
  16. $o = new GetSet();
  17. $o->object1->object2 = 'wartosc';
  18.  
  19. $o->asas->asas->sdadad->aad = 'asasa';
  20. echo $o->asas->asas->sdadad->aad;
  21. echo "<pre>";
  22. print_r($o);
  23. ?>

wywala blad i rozkminiam dlatego napisalem, to nie jest tak ze tylko chce i chce i siedze i nic nie robie bo caly czas to testuje tylko pisze na biezaco a nie czekam na rozwiazanie i jestem wdzieczny ze ktos mi odpisal i dziekuje tu krowalowi

Ok rozwiazanie (dzieki krowalowi)
  1. <?php
  2. class GetSet{
  3. public $object;
  4. public $value;
  5.  
  6. public function __get($name){
  7. if(!is_object($name))
  8. $this->$name = new GetSet();
  9.  
  10. return $this->$name;
  11. }
  12.  
  13. public function __set($name, $value){
  14. $this->$name = $value;
  15. }
  16. }
  17. $o = new GetSet();
  18.  
  19. $o->asas->aad = 'as567asa';
  20. $o->data = "afasfff";
  21. $o->asas->asas->sdadad->aad = 'asasa';
  22. echo $o->asas->aad;
  23. ?>


Ten post edytował deirathe 31.07.2008, 09:43:59
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 16:53