Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]dostep do zmiennej
Forum PHP.pl > Forum > Przedszkole
trucksweb
wydaje mi sie, ze powinno wszystko dzialac ale mam jakis problem z odczytem zmiennej, ktora wywoluje w nastepujacy sposob:

w pliku a.php mam klase:
  1. <?php
  2. class klasaa{
  3.  function abc()
  4. {
  5. global $zmienna;
  6. $zmienna ='wartosc';
  7. return TRUE;
  8. }
  9. }
  10. ?>


i teraz chce ja odczytac w pliku b.php
  1. <?php
  2. klasaa::abc();
  3. echo $zmienna;
  4. ?>


i za pierona nie widze tej zmienne ?
Co robie zle moze mi ktos powie dry.gif
erix
A masz metodę zadeklarowaną jako statyczną? tongue.gif

ps. czepiasz się obiektówki i babrasz się global" title="Zobacz w manualu PHP" target="_manual?
trucksweb
dalem global bo myslalem ze cos ta zmienna blokuje, ale nawet global nie pomoglo tongue.gif
erix
Ale skoro chcesz odwoływać się statycznie, to nie możesz np.
  1. <?php
  2. class klasaa{
  3. static $zmienna;
  4. static function abc()
  5. {
  6. self::$zmienna = 'wartosc';
  7. return TRUE;
  8. }
  9. }
  10. ?>


i potem:
  1. <?php
  2. klasaa::abc();
  3. echo klasaa::$zmienna;
  4. ?>

?
czachor
A co do pierwszego posta: zasięg zmiennych. Przeanalizuj przykłady, załapiesz, dlaczego Twój sposób nie działa smile.gif
trucksweb
a jaki sposob bylby zgodny z pelna obiektowoscia zeby rozwiazac taki problem ?
czachor
  1. <?php
  2. class foo
  3. {
  4.    public $bar = 'abc';
  5.  
  6.   //reszta klasy...
  7. }
  8.  
  9. $obj = new foo;
  10. echo $obj->foo;
  11. ?>

Możesz też użyć magicznej metody __get() lub zrobić to tak, jak pisał @erix.
drPayton
Cytat(trucksweb @ 8.12.2008, 22:46:20 ) *
a jaki sposob bylby zgodny z pelna obiektowoscia zeby rozwiazac taki problem ?


  1. <?php
  2. class Foo
  3. {
  4.    /**
  5.      * Ustawia wartość zmiennej
  6.      *
  7.      * @param mixed $mSomeVar
  8.      * @return object
  9.      */
  10.    public function setSomeVar($mSomeVar)
  11.    {
  12.        $this->mSomeVar = $mSomeVar;
  13.        return $this;
  14.    }
  15.    /**
  16.      * Pobiera wartość zmiennej
  17.      *
  18.      * @param mixed $mSomeVar
  19.      * @return object
  20.      */
  21.    public function getSomeVar($mSomeVar)
  22.    {
  23.        $this->mSomeVar = $mSomeVar;
  24.        return $this;
  25.    }
  26.    (...)
  27. }
  28. ?>


  1. <?php
  2. $oFoo = new Foo;
  3. $oFoo->setSomeVar('some new value');
  4. // a gdzieś tam dalej
  5. $mValue = $oFoo->getSomeVar();
  6. ?>


edit:
1. Literówki
2. To jeden z wielu przykładów
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.