Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Prosta sprawa jeśli chodzi o obiektówke
maniak11
post
Post #1





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 18.03.2006
Skąd: Sosnowiec

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


Witam wszystkich mam proste pytanie, w jaki sposób mam zrobić odwołanie żeby ustawić pewną zmienna wewnątrz klasy:

  1. class a
  2. {
  3. function editOffer()
  4. {
  5. $insertionObject = new InsertionObject();
  6. $insertionObject->ObjectName = 0;
  7.  
  8. return $insertionObject
  9. }
  10.  
  11.  
  12.  
  13. }
  14.  
  15.  
  16. class InsertionObject {
  17. public $ID;
  18. public $ObjectName;
  19. public $Country;
  20. }


i wywołanie:
  1. $test = new a();
  2. $insertionObject->Country = "Polska"; // zle
  3.  
  4. $test->editOffer();



Jak zapisać linię 2 ($insertionObject->Country = "Polska"; // zle) tak żeby zmienna Country == "'Polska" czyli trafiła do metody editOffer?
Za jakąś podpowiedź z góry dziękuję
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
damiankopiec
post
Post #2





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 23.02.2009
Skąd: Jelenia Góra

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


Tak się raczej nie uda. Bo w klasie a tworzysz nową instancję. Musiałbyś w tej klasie wykorzystać kompozycję i umieścić instancję w zmiennej składowej później ewentualnie zmieniać wartość zmiennych obiektu InsertionObject poprzez obiekt a. Ewentulanie możesz przekazywać do konstruktora klasy a instancję obiektu InsertionObject
Go to the top of the page
+Quote Post
MateuszS
post
Post #3





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


Hmm, może tak

  1. <?
  2. class a
  3. {
  4. private $insertionObject;
  5. private $country;
  6.  
  7. public function __construct($country)
  8. {
  9. $this->insertionObject = new InsertionObject();
  10. $this->insertionObject->country = $country;
  11. }
  12.  
  13. function editOffer()
  14. {
  15. $this->insertionObject->ObjectName = 0;
  16.  
  17. return $insertionObject;
  18. }
  19.  
  20. }
  21.  
  22.  
  23. class InsertionObject {
  24. public $ID;
  25. public $ObjectName;
  26. public $Country;
  27. }
  28.  
  29. $test = new a("Polska");
  30. $test->editOffer();
  31. ?>
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #4





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




To z OOP ma niewiele wspólnego. ->php
Go to the top of the page
+Quote Post
Crozin
post
Post #5





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Skoro metoda a::editOffer() zwraca Ci instancję jakiegoś obiektu to skorzystaj z niej:
  1. $test->editOffer()->Country = 'abc';
Go to the top of the page
+Quote Post

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: 26.09.2025 - 13:50