Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]określenie właściwości w klasie, Czy jest to zmienna statyczna ?
fiasko
post
Post #1





Grupa: Zarejestrowani
Postów: 243
Pomógł: 1
Dołączył: 1.06.2010

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


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

Ten post edytował fiasko 17.08.2011, 20:00:06
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Psajkus
post
Post #2





Grupa: Zarejestrowani
Postów: 45
Pomógł: 5
Dołączył: 26.06.2011

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


Możesz pobrać właściwości za pomocą refleksji, tu masz przykład:

http://www.php.net/manual/pl/reflectioncla...tproperties.php
Go to the top of the page
+Quote Post
bastard13
post
Post #3





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


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())


--------------------
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 - 09:08