Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dwie kopie obiektu ze wspolnym elementem
Bastion
post
Post #1





Grupa: Zarejestrowani
Postów: 505
Pomógł: 0
Dołączył: 8.01.2005

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


Mam takie drobne zapytanie, przypuscmy ze mam klase A i w jej sklad wchodzi klasa ktora jest rozszerzeniem. Czyli :

class A { ... } - glwona klasa
i
class B extends A { ....} - klasa zwierajace np dane, tablice etc

(IMG:http://www.vertis.com.pl/trash/graf001.png)

i teraz , tworze dwie kopie

kopia1 = new A;
kopia2 = new A;

czy da sie zrobic tak aby rozszerzenie klasy (klasaB) byla wspolna dla obu kopii ? tak ze modyfikacja jakiegos elementu w kopia1 nalezacego do rozszerzenia byla namacalna w drugiej kopii ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mike
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


No to ja bym zrobił tak:
  1. <?php
  2.  
  3. class A
  4. {
  5. static public $arrTab = array( 1 => 'jeden', 2 => 'dwa', 3 => 'trzy' );
  6.  
  7. public function __construct()
  8. {
  9. }
  10.  
  11. public function getElement( $intIndex )
  12. {
  13. return self::$arrTab[ $intIndex ];
  14. }
  15.  
  16. public function setTable( $arrTab )
  17. {
  18. self::$arrTab = $arrTab;
  19. }
  20. }
  21.  
  22. class B extends A
  23. {
  24. public function __construct()
  25. {
  26. }
  27. }
  28.  
  29. $objOne = new B;
  30. print $objOne->getElement( 1 );
  31. $objTwo = new B;
  32. print $objTwo->getElement( 2 );
  33.  
  34. $objThree = new B;
  35. $objThree->setTable( array( 1 => 'cztery', 2 => 'pięć' ) );
  36. print $objThree->getElement( 1 );
  37. $objFour = new B;
  38. print $objFour->getElement( 2 );
  39.  
  40.  
  41. ?>


Nie tworzysz kopii tablicy, bo masz ją statyczną.
Możesz sobie pobierać elementy i jajk chcesz to możesz ją zamienić.

Nie wiem, o to chodzi?
Jak nie to chyba nie rozumiem (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
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 - 09:23