print_r

print_r($value, $return)

Wypisuje wartość w czytelnej postaci: tablice i obiekty jako strukturę kluczy i wartości, inne wartości jako tekst. Z drugim parametrem ustawionym na true zwraca wynik zamiast go wypisywać.

Parametry

  • $value – wartość do wypisania.
  • $return – opcjonalny, domyślnie false. Z true funkcja zwraca wynik jako ciąg znaków.

Przykłady

print_r(array("a" => 1, "b" => array(2, 3))); // Array ( [a] => 1 [b] => Array ( [0] => 2 [1] => 3 ) )
print_r("Tekst"); // Tekst
// typy giną: true to 1, false i null to nic
print_r(true); // 1
echo "[" . print_r(false, true) . print_r(null, true) . "]"; // []
// obiekt
$person = new stdClass;
$person->name = "Jan";
print_r($person); // stdClass Object ( [name] => Jan )
// wynik zwrócony jako ciąg znaków
echo gettype(print_r(array(1), true)); // string
// na stronie: zachować wcięcia i zamaskować HTML
echo "<pre>" . htmlspecialchars(print_r(array("<b>" => 1), true)) . "</pre>"; // <pre>Array ( [&lt;b&gt;] =&gt; 1 ) </pre>

Na co uważać

  • Typów nie widać: true wypisuje się jako 1, false, null i pusty ciąg znaków jako nic. Tam, gdzie liczy się typ, użyj var_dump().
  • Wynik zawiera podziały wierszy i wcięcia. Na stronie umieść go w znaczniku <pre> i zamaskuj funkcją htmlspecialchars().
  • Z parametrem true używa wewnętrznie bufora wyjścia, dlatego nie da się jej wywołać w funkcji callback z ob_start().
  • Nie zostawiaj wypisów diagnostycznych na działającej stronie, mogą zdradzić poufne dane.

Powiązane funkcje:
var_dump()
var_export()
json_encode()