Print: примеры (PHP)

Вывод данных в PHP с помощью print
Раздел: Вывод данных
print(string $expression): int

В PHP print является языковой конструкцией, хотя часто используется как функция. Ее основная задача - вывод строки или значения, которое может быть преобразовано в строку.

Когда используется

Конструкция применяется для простого вывода данных, например, в веб-разработке для генерации HTML-контента. В отличие от echo, print всегда возвращает значение 1, что позволяет использовать ее в контексте выражений.

Аргументы

Конструкция принимает только один обязательный аргумент.

  • $value: Выражение, которое необходимо вывести. Аргумент преобразуется в строку, если это возможно. Можно передавать строки, числа, а также объекты, реализующие магический метод __toString().

Возвращаемое значение всегда равно 1.

Простые примеры вывода
<?php
print "Привет, мир!";
?>
Привет, мир!
<?php
$number = 42;
print $number;
?>
42
Использование в выражении

Поскольку print возвращает 1, ее можно использовать там, где ожидается выражение.

<?php
$result = print "Текст ";
echo "Результат print: $result";
?>
Текст Результат print: 1
Похожие конструкции в PHP
  • echo: Конструкция, очень похожая на print, но может принимать несколько аргументов через запятую и ничего не возвращает. Работает немного быстрее. Предпочтительна для простого вывода нескольких значений.
  • printf(): Функция для форматированного вывода. Используется, когда требуется контроль над форматом данных (числа, строки).
  • var_dump(), print_r(): Функции для отладки, выводят структурированную информацию о переменных, включая типы и значения элементов массивов/объектов.
  • sprintf(): Аналог printf(), но возвращает отформатированную строку, а не выводит ее.
Типичные ошибки
Попытка передать несколько аргументов
<?php
// Неправильно
print "Строка1", "Строка2";
?>
Parse error: syntax error, unexpected token "," in ...
Некорректная интерполяция переменных в строках
<?php
$fruit = "яблоко";
print "Корзина с $fruits"; // Опечатка в имени переменной
?>
Корзина с
Попытка вывести массив напрямую
<?php
$arr = [1, 2];
print $arr;
?>
Notice: Array to string conversion in ...
Array
Изменения в последних версиях PHP

Начиная с PHP 8.0.0, конструкция print стала выражением (expression), а не инструкцией (statement). Это незначительное изменение, которое формализует ее поведение как конструкции, всегда возвращающей значение 1. Практического влияния на большинство кода это не оказывает, но позволяет более последовательно использовать print в контекстах, где ожидается выражение, например, в комбинации с оператором объединения с присваиванием ??=.

Расширенные примеры
Встраивание в условные выражения
Пример php
<?php
$isLogged = true;
$isLogged ? print("Пользователь в системе") : print("Доступ запрещен");
?>
Пользователь в системе
Использование в комбинации с другими операторами
Пример php
<?php
// print возвращает 1, поэтому эта конструкция работает
$counter = 0;
$counter += print("Сообщение ");
echo $counter; // Выведет 1 после вывода "Сообщение "
?>
Сообщение 1
Вывод HTML-разметки
Пример php
<?php
print "<div class=\"alert\">" . htmlspecialchars("<script>alert('xss')</script>") . "</div>";
?>
<div class="alert">&lt;script&gt;alert('xss')&lt;/script&gt;</div>
Ограничения с другими типами данных
Пример php
<?php
class User {
    public function __toString() {
        return "Объект пользователя";
    }
}
$user = new User();
print $user; // Сработает из-за __toString
print true;  // Выведет "1"
print false; // Выведет пустую строку
print null;  // Выведет пустую строку
?>
Объект пользователя1
Аналоги в других языках

Print в Python

Функция print() выводит переданные аргументы, разделенные пробелом, с переводом строки в конце. Может принимать несколько аргументов и параметры для разделителя, конца строки и вывода в файл.

# Python
print("Привет", "мир", sep="-")  # Вывод нескольких аргументов
Привет-мир

Print в Javascript

Для вывода в консоль браузера используется console.log(). Может принимать любое количество аргументов.

// JavaScript
console.log("Привет", "мир", 42);
Привет мир 42

Print в MySQL

В SQL вывод данных осуществляется через оператор SELECT, который возвращает результат как набор строк.

-- MySQL
SELECT 'Привет, мир!' AS message;

PHP print function comments

En
Print Output a string