Функция print() - Выводит строку. PHP — print_r и var_dump, ускоряем работу простыми функциями Что функция умеет

print_r — Выводит удобочитаемую информацию о переменной

Описание

print_r() выводит информацию о переменной в удобочитаемом виде.

print_r() , var_dump() и var_export() могут также показывать защищенные (protected) и закрытые (private) атрибуты объектов в PHP 5. Статические элементы класса не будут отображены.

Следует помнить, что print_r() установит внутренний указатель массива в его конец. Используйте функцию reset() для установки его в начало массива.

Список параметров

expression

Выражение для вывода на экран.

return

Если Вы хотите перехватить вывод print_r() , используйте параметр return . Если его значение равно TRUE , то print_r() вернет результат вывода вместо вывода в браузер (который производится по умолчанию).

Возвращаемые значения

Если в функцию передаются значения типов string , integer или float , будет напечатано само значение. Если передается массив array , значениия будут напечатаны в формате, показывающем ключи и елементы массива. Аналогичный формат вывода используется для объектов.

Примечания

Замечание :

Эта функция использует внутреннюю буферизацию вывода с этим параметром, поэтому она не может быть использована внутри коллбэк-функции ob_start() .

Список изменений

Примеры

Пример #1 Пример использования print_r()

$a
= array ("a"
=>
"apple"
,
"b"
=>
"banana"
,
"c"
=> array ("x"
,
"y"
,
"z"
));
print_r ($a );
?>

Результат выполнения данного примера:

Array
([a] => apple
 [b] => banana
 [c] => Array
 ( => x
 => y
 => z))

В прошлый раз мы разбирали с вами тему массивов в php , а сегодня мы с Вами разберем функцию, которая называется print_r() . Данная функция является отладочной, и предназначена нам для того, чтобы мы могли в удобном виде просмотреть информацию о переменной. Почему я вначале темы затронул массивы, а это потому, что лучше всего при помощи этой функции просматривать массивы. Сейчас Вы в этом убедитесь.

$array = array(5 , 23 , "Denis" ) ;
print_r($array) ;
?>

Мы использовали массив из прошлого урока, и применили к нему функцию print_r . Показывать результат выполнения этой функции я не вижу смысла, просто напишите этот код и посмотрите результат в браузере. Там мы увидим, ключевое слово Array , и в скобках будут последовательно перечисляться индексы и их значения. Таким образом, мы можем просматривать даже самые большие массивы при помощи одной строчки. Это все, что я хотел рассказать про эту функцию. Вот такая сегодня получилась маленькая, легкая, а самое главное полезная статья. До скорой встречи!

10 years ago

Be careful when using print. Since print is a language construct and not a function, the parentheses around the argument is not required.
In fact, using parentheses can cause confusion with the syntax of a function and SHOULD be omited.

Most would expect the following behavior:
if (print("foo" ) && print("bar" )) {
}
?>

But since the parenthesis around the argument are not required, they are interpretet as part of the argument.
This means that the argument of the first print is

("foo") && print("bar")

and the argument of the second print is just

For the expected behavior of the first example, you need to write:
if ((print "foo" ) && (print "bar" )) {
// "foo" and "bar" had been printed
}
?>

So what should you choose to print your text? I found several things out writing this.

First, it should be noted that the print and echo keywords are interchangeable, performance-wise. The timings show that one is probably an alias for the other. So use whichever you feel most comfortable with.

Second, if you"ve ever wondered which was better, the definitive answer is single quotes. Single quotes are at least four times faster in any situation. Double quotes, while more convenient, do pose a debatably significant performance issue when outputting massive amounts of data.

Third, stay away from heredoc, and absolutely stay away from [s]printf. They"re slow, and the alternatives are there.

DO NOT RUN THE SCRIPT ON THE INTERNET! Run it instead from localhost. The script outputs ~45 megabytes of text in an html comment at the top of the page by default. Expect the benchmark to take ~45 seconds. If this is too long, you can change the amount of iterations to a lower number (the results scale accurately down to about 1,000 iterations).