Как в 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 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 [12827 просмотров]
PHP: Вывод текста
В PHP есть два основных способа вывода данных: echo и print .
echo и print в принципе делают одно и то же — выводят данные на экран, но всё же имеют и некоторые отличия друг от друга. echo не имеет возвращаемого значения и может принимать несколько аргументов. print при использовании возвращает 1, поэтому может быть использован в выражениях, и принимает только один аргумент.
echo
Обратите внимание, что echo можно писать двумя способами с круглыми скобками и без них: echo или echo() . Если вы используете синтаксис с круглыми скобками, то передать можно только один аргумент. При использовании синтаксиса без скобок, можно передавать несколько аргументов, разделяя их запятыми.
Следующий пример показывает, как выводить текст с помощью echo. Обратите внимание, что текст может содержать HTML разметку.
PHP это легко!"; echo "Сейчас я изучаю PHP!
"; echo "Эта ", "строка ", "была ", "сделана", " из нескольких аргументов."; ?>
Теперь рассмотрим вывод текста вместе с переменным:
$txt1"; echo "Сейчас я изучаю PHP на $txt2
"; echo $x + $y; ?>
print , так же как и echo можно писать в двух вариантах (со скобками и без них): print или print() . Но в отличие от echo , какой бы вариант написания вы ни выбрали, print может принять только один аргумент.
Следующий пример показывает, как выводить текст с помощью print . Обратите внимание, что текст может содержать HTML разметку.
PHP это легко!"; print "Сейчас я изучаю PHP!
"; print "И мне это нравится."; ?>
Теперь рассмотрим вывод текста вместе с переменным:
$txt1"; print "Сейчас я изучаю PHP на $txt2
"; print $x + $y; ?>
Копирование материалов с данного сайта возможно только с разрешения администрации сайта
и при указании прямой активной ссылки на источник.
2011 – 2023 © puzzleweb.ru | razumnikum.ru
print — это не функция, а языковая конструкция. Его аргумент — это выражение после ключевого слова print , не ограниченное круглыми скобками.
Главное отличие от echo в том, что print принимает только один аргумент и всегда возвращает 1 .
Список параметров
Выражение для вывода. Нестроковые значения будут преобразованы в строки, даже если включена директива strict_types .
Возвращаемые значения
Всегда возвращает 1 .
Примеры
Пример #1 Примеры использования print
print «print не требует скобок.» ;
?php
// Новая строка или пробел не добавляются; ниже выводит «приветмир» в одну строку
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
?php
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 '
'; > ?>
Этих стилей будет достаточно, чтобы выводить читаемый результат на вёрстке практически любой сложности.
