Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Odwoływanie do stałej w klasie gdzie nazwa klasy jest zmienną
kiler129
post 13.01.2011, 03:07:18
Post #1





Grupa: Zarejestrowani
Postów: 566
Pomógł: 35
Dołączył: 21.06.2006

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


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

Ten post edytował kiler129 13.01.2011, 03:11:06


--------------------
flexiCMS v2 [|||||||+--] 75% done
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Fifi209
post 13.01.2011, 08:24:49
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


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




--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
kiler129
post 13.01.2011, 09:52:05
Post #3





Grupa: Zarejestrowani
Postów: 566
Pomógł: 35
Dołączył: 21.06.2006

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


Ehh... na 5.3.3 działa wzorowo. Jest jakiś sposób aby odczytać wartość?


--------------------
flexiCMS v2 [|||||||+--] 75% done
Go to the top of the page
+Quote Post
kalmaceta
post 13.01.2011, 10:45:11
Post #4





Grupa: Zarejestrowani
Postów: 183
Pomógł: 24
Dołączył: 4.12.2010

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


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. }:


Ten post edytował kalmaceta 13.01.2011, 10:48:21


--------------------
kAlmAcetA
Go to the top of the page
+Quote Post
Bags_Bunny
post 13.01.2011, 18:22:58
Post #5





Grupa: Zarejestrowani
Postów: 262
Pomógł: 39
Dołączył: 12.04.2004

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


  1. echo constant($foo.'::test');


--------------------
rm -rf /*
Go to the top of the page
+Quote Post
kiler129
post 14.01.2011, 01:22:52
Post #6





Grupa: Zarejestrowani
Postów: 566
Pomógł: 35
Dołączył: 21.06.2006

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


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 ;]

Ten post edytował kiler129 14.01.2011, 01:23:08


--------------------
flexiCMS v2 [|||||||+--] 75% done
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 Wersja Lo-Fi Aktualny czas: 13.08.2025 - 23:24