Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: print_r
Forum PHP.pl > Forum > PHP
binary_search
Witam,
chciałem napisać funkcję, za pomocą której można wyświetlić tekst identyczny ze zwróconym przez print_r().
Oto kod funkcji, po moich testach się zgadza:
  1. <?php
  2. function print_tabs($deg){
  3.   while($deg--)echo "\t";
  4. }
  5.  
  6. function my_print_r($x, $deg=0){
  7.   if(is_object($x)){
  8.       echo get_class($x)." Object\n";
  9.       print_tabs($deg);
  10.       echo "(\n";
  11.       foreach($x as $key => $val){
  12.          print_tabs($deg+1);
  13.          echo "[$key] => ";
  14.          my_print_r($val, $deg+2);
  15.       }
  16.       print_tabs($deg);
  17.       echo ")\n";
  18.       return;
  19.   }
  20.   echo $x."\n";
  21.   if(is_array($x)){//wnetrze instrukcji if identyczne jak dla obiektu
  22.       print_tabs($deg);
  23.       echo "(\n";
  24.       foreach($x as $key => $val){
  25.          print_tabs($deg+1);
  26.          echo "[$key] => ";
  27.          my_print_r($val, $deg+2);
  28.       }
  29.       print_tabs($deg);
  30.       echo ")\n";
  31.   }
  32. }
  33. //test dzialania:
  34. echo '<pre>';
  35. $a = array ('a' => 'apple', 'b' => 'banana', 'c' => array ('x', 'y', 'z'));
  36. my_print_r($a);
  37. echo '</pre>';
  38. ?>

Działa dla obiektów, tablic i zmiennych typów podstawowych, czy o czymś zapomniałem?
nexis
A w czym funkcja print_r()" title="Zobacz w manualu PHP" target="_manual nie spełnia Twoich oczekiwań skoro chcesz osiągnąć identyczny efekt?
viking
Zamiast strzelać zerknij w źródła PHP smile.gif
szagi3891
Spróbuj wyświetlić sobie za pomocą Twojej funkcji zmienną $_GLOBALS. Ona ma odwołanie do samej siebie przez co może Ci się zdarzyć że Twoja funkcja po prostu się zapętli. Pisałem podobną funkcję, tak aby mi się ładnie graficznie zawartość zmiennej wyświetlała i przez długi czas z odwołaniami referencyjnymi nie mogłem sobie poradzić ale na szczęście w końcu się udało. Funkcja print_r odwołania referencyjne wyświetla jako (*RECURSION*).
binary_search
Skoro miała być identyczna, to oznacza, że print_r() spełniałą moje oczekiwania winksmiley.jpg Własną funkcje napisałem w celu poznania mechanizmu tongue.gif

Początkowo zainteresowałem się tym, ponieważ chciałem stworzyć mechanizm, zapisu i odczytu obiektu do pliku. Zapis realizowałaby funkcja print_r() Odczyt musi być analogiczny, czyli najlepiej po prostu przerobić funkcję tongue.gif
phpion
Cytat(binary_search @ 27.06.2009, 13:16:01 ) *
chciałem stworzyć mechanizm, zapisu i odczytu obiektu do pliku

serialize" title="Zobacz w manualu PHP" target="_manual + unserialize" title="Zobacz w manualu PHP" target="_manual questionmark.gif
binary_search
Dzięki, tego mi było trzeba, tak sądziłem, że jest już gotowa funkcja winksmiley.jpg
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.