Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Odwoływanie do stałej w klasie gdzie nazwa klasy jest zmienną
Forum PHP.pl > Forum > PHP
kiler129
Witajcie!

Z góry przepraszam za tytuł ale nic dobrego nie przyszło mi do głowy smile.gif Problem do opisania jest dość prosty.
  1. <?php
  2. class FooClass {
  3. const test = "Hello!";
  4. }
  5.  
  6. $foo = "FooClass";
  7. echo $foo::test;
  8. ?>


Czy ten kod będzie działać poprawnie poniżej PHP 5.3?
W manualu znalazłem taką notkę: http://php.net/manual/en/language.oop5.static.php [fragment: $classname::aStaticMethod(); // As of PHP 5.3.0] ale nie wiem czy dotyczy to ty tylko metod czy też zmiennych oraz stałych.

Niestety na żadnym serwerze nie posiadam już nic niżej 5.3 aby sprawdzić dostal.gif
Fifi209
Hmm, na 5.2.5 jest piękny błąd ;]
Cytat
Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM, expecting ',' or ';' in C:\Program Files (x86)\WebServ\httpd\index.php on line 8


kiler129
Ehh... na 5.3.3 działa wzorowo. Jest jakiś sposób aby odczytać wartość?
kalmaceta
get_class_vars () jest.

  1. class foo {
  2. static public $i = 0;
  3.  
  4. }
  5. print_r(get_class_vars('foo'));


edit sorki chodziło o consta

  1. function GetClassConstants($sClassName) {
  2. $oClass = new ReflectionClass($sClassName);
  3. return $oClass->getConstants());
  4. }:
Bags_Bunny
  1. echo constant($foo.'::test');
kiler129
Dzięki za pomoc, szczególnie Bags_Bunny.

p.s. @Bags_Bunny kod z twojego podpisu w większości distro już nie działa ;] Ciekawszy jest
Kod
:(){ :|: & };:
i dziala nawet z konta usera ;]
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.