Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]wartość stałej ze zmiennej
Forum PHP.pl > Forum > Przedszkole
php programmer
Witam, mam zdefiniowane wiele stałych

  1. <?php
  2. DEFINE ('RAZ','1');
  3. DEFINE ('DWA','2');
  4. DEFINE ('TRZY,'3);
  5. ?>


i zmienną

  1. <?php
  2. $nazwa_stalej = 'RAZ';
  3. ?>


moje pytanie: jak pobrać wartość stałej,
Jeśli nazwa tej stałej zawarta jest w zmiennej.
kefirek
Zobacz tak
  1. <?php
  2. define ("RAZ", 1);
  3. define ("DWA", 2);
  4. define ("TRZY", 3);
  5.  
  6. echo RAZ;
  7. echo "<br>";
  8. $stala = RAZ;
  9. echo "$stala";
  10. ?>
Snowak
Coś czuje, że robisz to na około i trzymanie nazwy stałej w zmiennej jest przekombinowane, ale zawsze możesz użyć coś takiego...

  1. <?php
  2. define('TEST', 'asd');
  3. $stala = 'TEST';
  4. $s = eval("return " . $stala . ";");
  5. echo($s);
  6. ?>


Zdecydowanie nie polecam używać takiej metody.
mike
Ludzie czytajcie dokumentację!
Przecież jest gotowa funkcja get_defined_constants().
Funkcja zwraca tablicę w której klucze są nazwami stałych a wartościami wartości tych stałych.

  1. <?php 
  2.  
  3. DEFINE ('RAZ','1');
  4.  
  5. $nazwa_stalej = 'RAZ';
  6.  
  7. $constants = get_defined_constants(true);
  8. echo $constants['user'][$nazwa_stalej];
  9.  
  10. ?>
nospor
@ludzie i mike winksmiley.jpg czytajcie poprzednie posty!!! w pierwszym poscie padla juz odpowiedź tongue.gif

edit down: a ja nawiazywalem do calego watku, ktory rozrosl sie pomimo odpowiedzi juz w pierwszym poscie i pomimo ze kazdy ma dostep do manuala smile.gif
mike
Oczywiście pomijając rozwiazanie oczywiste: constant()

Nawiązywałem do proponowanych zabaw z evalem()
php programmer
Cytat(Snowak @ 30.06.2008, 11:59:33 ) *
Coś czuje, że robisz to na około i trzymanie nazwy stałej w zmiennej jest przekombinowane


Zgadzam się, ale dopisuję funkcjonalność do czegoś co już istnieje.
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.