Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: obiekty ::
Forum PHP.pl > Forum > PHP
toth
Witam wszystkich

PHP4
tak wiec mam obiekt "acs" ktory posiada metode "acs_record".

odwolujac sie do tej metody poprzez acs::acs_record(). wszysto jest ok i super dziala.
Metoda acs_record zwraca wartosci true or false.

Mam takie pytanie czy jest mozliwosc odwolania sie do jakiejsc zmiennej wewnatrz metody "acs_record" stworzonej operatorem "this"?

mysle o czyms takim

  1. <?php
  2.  
  3. $test = acs::acs_record();
  4. echo $this->zmienna_wewnatrz_metody;
  5.  
  6. ?>


pozdrawiam
toth
nospor
acs::acs_record() to jest wywołana statyczna metoda klasy a nie obiektu. Żeby użyć $this musi istnieć obiekt. Także jak wywołujesz coś staycznie, to nie możesz używać $this bo nie ma gwarancji że obiekt istnieje
toth
Wielkie dzieki nospor, wlasnie to chcialem wiedziec
pozdrawiam
toth
dr_bonzo
Czytalem o takim rozwiązaniu:
w tej metodzie sprawdzasz czy $this nalezy do klasy tej metody
jesli tak -- to funkcja zostala uruchomiona w sposob niestatyczny i mozesz uzywac $this, jesli nie -- to w sposob statyczny. Dlatego wlasnie w php5 wprowadzono slowo static. Nie sprawdzalem go bo php5 rulez smile.gif
toth
jak to zrobic? snitch.gif

jeszcze czegos takiego nie uzywalem.
nie wiem jak sprawdzic czy $this nalezy do klasy tej metody :<
nospor
można tak :
isset($this).
jesli zwróci true, to wiesz ze dana metoda została wywolana z obiektu czyli $objekt->metoda();
jesli zwróci false to metoda zostala wywolana statycznie czyli klasa::metoda()
toth
kurcze chyba popelnilem maly blad snitch.gif

rozumiem ,ze piszac o $this nie mowimy o zmiennej zarezerwowanej, ktora nazywa sie tak samo ($this).

nie zauwazylem ,ze w przykladzie uzylem pomylkowo tej zmiennej.

rozumiem, ze np w tym przyladzie:

$zmienne = acs::acs_record();

macie na mysli isset($zmienna) tak ? snitch.gif
nospor
nie, chodziło mi dokładnie o zmienną $this, która dotyczy obiektu
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.