Войти через VK Войти через FB Войти через Google Войти через Яндекс
Поиск по сайту
print_r
(PHP 4, PHP 5)
print_r - печатает читабельную информацию о переменной.
Описание
void print_r (mixed expression)
print_r() выводит пригодную для чтения человеком информацию о переменной. Если задано string, integer или float, печатается само значение. Если задан array, значения будут представлены в формате с показом ключей и элементов. Аналогичная нотация используется для object.
Помните, что print_r() перемещает указатель массива в конец. Используйте reset() для возврата его в начало.
Подсказка: как при любом прямом выводе информации в браузер, вы можете использовать функции управления выводом для захвата вывода этой функции и сохранить его - например - в string.
<?php
$a = array ('a' => 'apple', 'b' => 'banana', 'c' => array ('x','y','z'));
print_r ($a);
?>
выдаст на выводе:
Array ( [a] => apple [b] => banana [c] => Array ( [0] => x [1] => y [2] => z ) )
Примечание: до PHP 4.0.4 print_r() продолжает выводит бесконечно, если задан array или object, содержащий прямую или косвенную ссылку на себя самого. Примером может служить print_r($GLOBALS), поскольку $GLOBALS сама является глобальной переменной, содержащей ссылку на саму себя.
Эмулятор функции print_r
Этот пример эмуляции функции print_r позволяет не только вывести содержимое массива включая вложенные массивы, но и сформировать строку.
function arr2str($array) {
$str = "array(\n";
foreach ($array as $key => $value) {
if (is_array($value)) {
$str .= "'$key' => " . arr2str($value) . ",\n\n";
}
else {
$str .= "'$key' => '" . str_replace("'", "\'", $value) . "',\n";
}
}
return $str . ")";
}
Усложненный вариант функции print_r
При выводе делаются отступы и производится преобразование utf-8 в win1251
function arr2str($arr,$level=0){
$str = "array(<br>\n";
foreach ($arr as $key => $val) {
if (is_array($val)) {
$str.=str_repeat(" ",$level)."'".iconv( 'utf-8', 'windows-1251',$key)."' => " . arr2str($val,$level+1) . ",<br>\n";
}else {
$str.=str_repeat(" ",$level)."'".iconv( 'utf-8', 'windows-1251',$key)."' => '<b>" . str_replace("'", "\'", iconv( 'utf-8', 'windows-1251',$val)) . "</b>',<br>\n";
}
}
return $str . str_repeat(" ",$level).")";
}
//Пример вызова:
echo arr2str($arr);
Смотрите также ob_start(), var_dump() и var_export().
Все функции строкиВсе функции array
Описание на ru2.php.net
Описание на php.ru