Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]określenie właściwości w klasie
Forum PHP.pl > Forum > Przedszkole
fiasko
Witam czy istnieje wbudowana w php metoda , która pozwala określić czy dana właściwość jest statyczna ? Potrzebuję to określić gdyż chcę stworzyć wyjątek dla zmiennej statycznej w procesie serializacji obiektu.


  1. np .
  2.  
  3. <?
  4.  
  5. class SampleObject {
  6. public $var1 = "Pierwsza wartość";
  7. private $var2 = "Druga wartość";
  8. protected $var3 = "Trzecia wartość";
  9. public static $var4 = "Czwarta wartość";
  10. private $staticvars = array();
  11.  
  12.  
  13.  
  14. public function testuj){
  15. $vars = get_class_vars(get_class($this));
  16. echo "<pre>";
  17. print_r($vars);
  18. echo "</pre>";
  19.  
  20. foreach ($vars as $key => $val)
  21. {
  22. if(is_static($val)) // mam problem aby w tym miejscu określić , że właściwość jest statyczna
  23. {
  24. // gdy właścwość jest statyczna
  25. }
  26. else {
  27.  
  28. // gdy właściwość jest inna
  29.  
  30. }
  31.  
  32.  
  33. }
  34.  
  35.  
  36. }
  37.  
  38. $so = new SampleObject();
  39. $so -> testuj();
  40.  
  41.  
  42.  
  43. ?>
  44.  
  45.  
  46.  


ps. oczywiście "is_static" to tylko tak dla przykładu żeby było wiadomo co chcę osiągnąć smile.gif Tak więc , żeby ktoś nie myślał że takie coś istnieje smile.gif
Psajkus
Możesz pobrać właściwości za pomocą refleksji, tu masz przykład:

http://www.php.net/manual/pl/reflectioncla...tproperties.php
bastard13
To jest wszystko czego potrzebujesz:
http://www.php.net/manual/pl/class.reflectionclass.php

później w if'ie:
  1. if(ReflectionClassObject->getProperty($propertyName)->isStatic())
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.