Napisałem sobie prostą funkcję do wyświetlania informacji o zmiennej, połączenie print_f() i var_dump().
Funkcja w tagu <pre> wyświetlana jest podobnie do print_f(). Zamieszczam poniżej kod, może komuś się przyda.
<?php //funkcje pomocnicze function boolname($int) { switch($int){ case 0: return 'false'; break; case 1: return 'true'; break; } } function level($lev, $roach) { $tab=""; for($x=0;$x<$lev;$x++) { $tab.=$roach; } return $tab; } // Drukowanie informacji o zmiennej function print_var($var, $lev=0, $arname=1, $roach="\t",$inside=false) { $level=level($lev,$roach); { } { { } { } { } { } { } { $type=new ReflectionClass($var); } { } else { } } else { for($x=0; $x<count($keys); $x++) { { print_var($var[$keys[$x]],$lev+1,1,$roach,true); } { } { } { } { } { } { $type=new ReflectionClass($var[$keys[$x]]); } { } }; } } ?>
Struktura funkcji wygląda następująco:
Kod
void print_var(mixed $variable,[int $level=0,[int $arname=1,[string $roach="\t",[bool $inside=false]]]])
gdzie:
$variable - zmienna którą przetwarzamy;
$level - poziom wcięcia, przydatne przy tablicach żeby wartości tablic zagnieżdżonych były wyświetlone z wcięciem;
$arname - czy wyświetlić ''array\n" na początku w przypadku gdy zmienna jest tablicą, standardowo tak;
$roach - czy ma być wykonane wcięcie, standardowo tabulator;
$inside - używane wewnątrz funkcji do rekurencji, aby prawidłowo wyświetlało wcięcia;
Funkcję najlepiej wyświetlać poprzez tag <pre> żeby zwiększyć czytelność tak jak to ma miejsce przy print_r(). Gdy wywołamy funkcję w postaci:
@print_var($var);
i $var nie będzie zdefiniowane, funkcja wyświetli informację o tym.
Przykład użycia dla następującego kodu
$obj = new stdClass();
Kod
array
(
[0] => resource(stream)
[test] => integer(45)
[ttds] => string[5]("fdsfd")
[1] => integer(34)
[2] => string[4]("5342")
[3] => array
(
[0] => array
(
[fds] => resource(mysql link)
[0] => integer(456)
)
[11] => float(3.25)
[elo] => integer(255)
[12] => array
(
[0] => array
(
[0] => array
(
[0] => object["stdClass"]
(
[student] => array
(
[0] => string[4]("test")
[1] => string[4]("tfds")
[2] => string[5]("dsfew")
)
)
)
)
)
[13] => string[5]("teggd")
)
[4] => boolean(true)
)
(
[0] => resource(stream)
[test] => integer(45)
[ttds] => string[5]("fdsfd")
[1] => integer(34)
[2] => string[4]("5342")
[3] => array
(
[0] => array
(
[fds] => resource(mysql link)
[0] => integer(456)
)
[11] => float(3.25)
[elo] => integer(255)
[12] => array
(
[0] => array
(
[0] => array
(
[0] => object["stdClass"]
(
[student] => array
(
[0] => string[4]("test")
[1] => string[4]("tfds")
[2] => string[5]("dsfew")
)
)
)
)
)
[13] => string[5]("teggd")
)
[4] => boolean(true)
)