Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wylistowanie zmiennych i ich wartości z klasy nie znając ich nazw.
Forum PHP.pl > Forum > PHP > Object-oriented programming
starach
Witam mam klasę z której chciałbym wyciągnąć wszystkie zmienne i ich nazwy jak to zrobić,
biorą pod uwagę fakt że ich nie znam. Czy da się w tym wypadku uniknąć używania ReflectionsAPI ?
Powiedzmy mam klasę
  1. <?php
  2. class test {
  3. public $liczba=6;
  4. public $liczba_dwa=3;
  5. public $string='Ala ma kota';
  6. public $string_dwa='Kot ma pchly';
  7. public $double=2.5;
  8. }
  9. ?>
Jak pobrać nazwy tych zmiennych i ich wartości ?
Sedziwoj
jest: get_class_vars() i get_object_vars() tylko pytanie po co Ci to?
starach
Do debugowania klasy.
Jak coś mi nie będzie działać to wyświetlę listę zmiennych i może mi coś zaświta. Dzisiaj tak przez pół godziny szukałem błędu analizując krok po kroku ponad 20 linijek kodu żeby znaleźć że źle przypisywałem zmienną.
shocked tongue.gif Dzięki wielkie że mi oszczędziłeś szukania w manualu ^^
kubarek
ew. foreach:
  1. <?php
  2. $test=new test;
  3. foreach($test as $key=>$value){
  4.  // $key - nazwa zmiennej, $value - wartość
  5. }
  6. ?>
sobstel
także np. var_dump" title="Zobacz w manualu PHP" target="_manual
starach
Kiedy te dwa tygodnie temu wam podziękowałem nie przetestowałem tego rozwiązania. tongue.gif
Otóż chcę otrzymać listę zmienny klasowych z wnętrza danej klasy.
(tutaj miałem kontynuować swój wywód na temat 'O co mi chodzi', ale coś mnie tknęło)
Trochę pomyślałem i sam napisałem hehe
  1. <?php
  2. foreach($this as $key => $val)
  3. {
  4. if(is_object($val)) {
  5. echo $key.': '.get_class($val).'<br>';
  6. } else if(is_array($val)) {
  7. echo '<pre>'.$key.': '.htmlspecialchars(print_r($val, true)).'</pre>';
  8. } else {
  9. echo "$key = $val<br>";
  10. }
  11. }
  12. ?>
O to mi właśnie chodziło ^^
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.