Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Funkcja zmieniająca objekt dany w jej parametrze
Forum PHP.pl > Forum > PHP > Object-oriented programming
Apocalyptiq
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?
LBO
  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.
Apocalyptiq
Dzięki za pomoc, ale błąd nie tkwił w tej części - w tej drugiej klasie pomyliłem nazwę zmiennej :-)
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.