Перейти к содержимому

Как вывести в консоль php

  • автор:

print

print — это не функция, а языковая конструкция. Его аргумент — это выражение после ключевого слова print , не ограниченное круглыми скобками.

Главное отличие от echo в том, что print принимает только один аргумент и всегда возвращает 1 .

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

Выражение для вывода. Нестроковые значения будут преобразованы в строки, даже если включена директива strict_types .

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

Всегда возвращает 1 .

Примеры

Пример #1 Примеры использования print

print «print не требует скобок.» ;

// Новая строка или пробел не добавляются; ниже выводит «приветмир» в одну строку
print «привет» ;
print «мир» ;

print «Эта строка занимает
несколько строк. Новые строки
также будут выведены» ;

print «Эта строка занимает\nнесколько строк. Новые строки\nтакже будут выведены» ;

// Аргументом может быть любое выражение, производящее строку
$foo = «пример» ;
print «пример — это $foo » ; // пример — это пример

$fruits = [ «лимон» , «апельсин» , «банан» ];
print implode ( » и » , $fruits ); // лимон и апельсин и банан

// Нестроковые выражения приводятся к строковым, даже если используется declare(strict_types=1)
print 6 * 7 ; // 42

// Поскольку print имеет возвращаемое значение, его можно использовать в выражениях
// Следующие выходные данные «привет мир»
if ( print «привет» ) echo » мир» ;
>

// следующее выражение выведет «true»
( 1 === 1 ) ? print ‘true’ : print ‘false’ ;
?>

Примечания

Замечание: Использование с круглыми скобками

Заключение аргумента print в круглые скобки не вызовет синтаксической ошибки и создаст синтаксис, который выглядит как обычный вызов функции. Однако это может ввести в заблуждение, поскольку круглые скобки на самом деле являются частью выводимого выражения, а не частью самого синтаксиса print .

print( «привет» );
// также выведет «привет», потому что («привет») — корректное выражение

print( 1 + 2 ) * 3 ;
// выведет «9»; круглые скобки приводят к тому, что сначала вычисляется 1+2, а затем 3*3
// оператор print видит все выражение как один аргумент

if ( print( «привет» ) && false ) print » — внутри if» ;
>
else print » — внутри else» ;
>
// выведет » — внутри if»
// сначала вычисляется выражение («привет») && false, давая false
// это приводится к пустой строке «» и выводится
// конструкция print затем возвращает 1, поэтому выполняется код в блоке if
?>

При использовании print в более крупном выражении может потребоваться размещение ключевого слова и его аргумента в круглых скобках для получения желаемого результата:

if ( (print «привет» ) && false ) print » — внутри if» ;
>
else print » — внутри else» ;
>
// выведет «привет — внутри else»
// в отличие от предыдущего примера, выражение (print «привет») вычисляется первым
// после вывода «привет» print возвращает 1
// поскольку 1 && false ложно, выполняется код в блоке else

print «привет » && print «мир» ;
// выведет «мир1»; print «мир» выполняется в первую очередь,
// тогда выражение «привет» && 1 передается в левую часть print

(print «привет » ) && (print «мир» );
// выведет «привет мир»; круглые скобки заставляют выражения print
// выполнятьтся перед &&
?>

Замечание: Поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций или именованных аргументов.

Смотрите также

  • echo — Выводит одну или более строк
  • printf() — Выводит отформатированную строку
  • flush() — Сброс системного буфера вывода
  • Способы работы со строками

Вывод значения переменной в PHP (echo, print_r, var_dump)

В PHP есть несколько способов вывести значениепеременной, но далеко не все умеют работать со всеми типами данных. Рассмотрим разные способы.

echo

Языковая конструкция echo без проблем может выводить на страницу значение числовой или строковой перемененной. Также она может вывести значение переменной в формате DateTime, преобразовав его в строку. Но если сделать

На экран будет выведено:

Array

Поэтому в качестве универсального способа для вывода конструкция echo не подходит.

var_dump

Функция var_dump печатает выводит содержание переменной. Заодно указывает типы данных, к которым относятся переменные. Попробуем её на практике:

Результат будет следующим

array(3) < [0] =>int(5) [1] => bool(false) [2] => string(8) "Мышь" >

Функция var_dump выводит переменную с переносами строк. Поэтому обрамить результат вывода в тег pre, то код станет легче воспринимать. Попробуем сделать так

'; var_dump($a); echo '

'; ?>

array(3) < [0] =>int(5) [1] => bool(false) [2] => string(8) "Мышь" >

В отличии от echo функция var_dump выводит абсолютно все типы данных. Часто помогает в разработке и отладке кода.

print_r

Функция print_r — это аналог функции var_dump, но в её выводе нет указания на тип данных. Попробуем её на практике:

'; print_r($a); echo '

'; ?>
Результат будет такой:

Array ( [0] => 5 [1] => [2] => Мышь )

Если вместо второго элемента массива «false» поставить true, то будет выводиться единица, а не пустое место:

Array ( [0] => 5 [1] => 1 [2] => Мышь )

Всё в одной удобной функции

Если Вы уже прочитали статью «Функции в PHP», то сможете догадаться, что лучше всего для вывода переменной сделать функцию-обёртку. Выберем для этих целей именно print_r, потому что зачастую print_r используется чаще, чем var_dump. Попробуем сделать это:

'; print_r($object); echo '

'; > ?>

Всё готово! Теперь во время отладки и разработки можно пользоваться функцией PrintObject( ), чтобы вывести содержание переменной. Но на реальных сайтах может возникнуть небольшая проблема со стилями, которые будут влиять на содержимое блока . Эти стили можно переопределить. Поэтому чуть доработаем пример:

'; print_r($object); echo '

'; > ?>

Этих стилей будет достаточно, чтобы выводить читаемый результат на вёрстке практически любой сложности.

Отладка PHP кода в консоли браузера

Отладка PHP кода в консоли браузера

Заметки айтишника

Сегодня я задумался, как вывести print_r в консоль браузера? Ведь, сколько раз мы писали злосчастные var_dump и print_r и после этого долго мотали страницу в поиске отладочной информации, а если отладку нужно производить на боевом сайте — то клиенты могли увидеть вашу «работу» по устранению неисправностей.

Итак, поехали: реализации функции вывода отладочной информации PHP в консоль браузера

console.group('".$label."');console.log('".$str."');console.groupEnd();"; > function cl_var_dump ($var, $label = '') < ob_start(); var_dump($var); $result = json_encode(ob_get_clean()); echo ""; > //пример использования: $mas = array ("1", "2", "3", array("key"=>"value")); cl_print_r($mas, '$mas log cl_print_r'); cl_var_dump($mas, '$mas log cl_var_dump'); ?>

В итоге всё будет выглядеть примерно так:

  • ← Организация универсального обработчика Ajax запросов
  • Полезные функции при выводе информации на русском языке (окончания, номера месяцев, дней) →

Как вывести в консоль php

БлогNot. PHP: как вывести переменную или массив в консоль браузера вместе с именем?

PHP: как вывести переменную или массив в консоль браузера вместе с именем?

Причём, мы хотим это сделать в «нормальном» виде » $имя = значение «, например, для этого кода на PHP

 'bar', 'baz' => 'long'); pr($d); //двумерный массив $arr2 = array ( array(1,2,3), array(4,5,6) ); pr($arr2); //объект класса class foo < public $prop; //приватные свойства наш метод, разумеется, не покажет! function __construct ($prop = 0) < $this->prop = (is_numeric($prop) ? $prop : 0); > function get() < return $this->prop; > > $bar = new foo (10); pr($bar); ?>

где pr() — недостающая функция, мы хотим увидеть в консоли примерно следующее:

вывод в консоль браузера имени и значения переменной или массива PHP

вывод в консоль браузера имени и значения переменной или массива PHP

Да, в PHP 5.6 и выше есть интерактивный отладчик (только с его длинными именами функций толком ещё никто не работал), можно также пользоваться средствами браузера и т.п., холиваров в инете куча, нет только ответа на наш вопрос.

Вот какую функцию, решающую задачу, я написал:

console.log("'.trim($var).'='. addslashes(json_encode($val,JSON_UNESCAPED_UNICODE)) .'")'."\n"; > ?>

Функция работает только с кодировкой UTF-8 из-за json_encode.

Если листинг выше сохранить как файл с именем, скажем, pr.php , удобно будет подключать функцию отдельным модулем:

Предполагается, что файлы расположены в одной папке и имеют кодировку Юникода utf-8. Скрипт проверялся в XAMPP с PHP 7.X.

Вывод в консоли для этого примера:

$a=[[[1,2],[3,4]],[[5,6],[7,8]]] $c=1000 'coo'="coo"

Тем не менее, наша функция не будет печатать, например, переданные ей аргументом строки в двойных кавычках, принимать списки из нескольких аргументов и т.п.

Следует помнить, что в общем случае нужно предпочитать «официальные» инструменты отладки.

Какими комбинациями клавиш вызывается консоль в разных браузерах?
Ctrl + Shift + J - в Google Chrome; Ctrl + Shift + K - в Mozilla Firefox; F12 - в Internet Explorer, Microsoft Edge; Ctrl + Shift + I - в Opera; Ctrl + Alt + I - в Safari.

Вывод отладочной информации в консоль удобен прежде всего тем, что ничего не «вываливает» на формируемую браузером страницу. Когда функция станет не нужна, можно просто сделать её пустой:

или закомментировать содержимое:

11.02.2020, 12:12 [12722 просмотра]

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *