Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Funkcja zmieniająca objekt dany w jej parametrze, Gdzie wrzucić ampersand (wskaźniki)
Apocalyptiq
post
Post #1





Grupa: Zarejestrowani
Postów: 230
Pomógł: 3
Dołączył: 8.01.2008

Ostrzeżenie: (10%)
X----


Chcę, aby jedna funkcja mi ustawiała pewne właściwości (zmienne) obiektu przekazywanego w parametrze Przedstawie to na prostym przykładzie:

  1. <?php
  2. class Objekt{
  3. public $something = "something";
  4.  
  5. public function generate() {
  6.  $this->costam = "costam";
  7.  Klasa::set_this($this);
  8.  echo $this->something; // nie ustawione w thisie ;/
  9. }
  10. }
  11.  
  12. class Klasa{
  13.  
  14. public function set_this($objekt) {
  15.  $objekt->{ $objekt->something } = "ustawiłem to!";
  16. }
  17. ?>


Da to się jakoś zrobić wskaźnikami?

Ten post edytował Apocalyptiq 10.05.2009, 20:05:05


--------------------
http://estender.net - profesjonalne strony i aplikacje internetowe (Ruby on Rails, Kohana PHP)
Go to the top of the page
+Quote Post
LBO
post
Post #2





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


  1. <?php
  2.  
  3. class Object1
  4. {
  5.    public $variable1 = "initial value";
  6.  
  7.    public function test()
  8.    {
  9.        Object2::modifyObject1($this);
  10.    }
  11. }
  12.  
  13. class Object2
  14. {
  15.    public static function modifyObject1(Object1 $object)
  16.    {
  17.        $object->variable1 = "value has been changed";
  18.    }
  19. }
  20.  
  21. $object = new Object1;
  22. print $object->variable1 . PHP_EOL; // daje "initial value"
  23. $object->test();
  24. print $object->variable1 . PHP_EOL; // daje "value has been changed"
  25. ?>


Przekazując $this, przekazujesz zwykłą instancję obiektu.

Ten post edytował LBO 10.05.2009, 20:11:24
Go to the top of the page
+Quote Post
Apocalyptiq
post
Post #3





Grupa: Zarejestrowani
Postów: 230
Pomógł: 3
Dołączył: 8.01.2008

Ostrzeżenie: (10%)
X----


Dzięki za pomoc, ale błąd nie tkwił w tej części - w tej drugiej klasie pomyliłem nazwę zmiennej :-)

Ten post edytował Apocalyptiq 10.05.2009, 20:19:06


--------------------
http://estender.net - profesjonalne strony i aplikacje internetowe (Ruby on Rails, Kohana PHP)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 03:59