print

(PHP 4, PHP 5, PHP 7, PHP 8)

printВыводит строку

Описание

print(string $expression): int

Языковая конструкция выводит выражение expression.

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

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

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

expression

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

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

Языковая конструкция всегда возвращает 1.

Примеры

Пример #1 Примеры использования языковой конструкции print

<?php

print "print не требует скобок.";
print
PHP_EOL;

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

print
"Эта строка занимает
несколько строк. Новые строки
тоже выводятся"
;
print
PHP_EOL;

print
"Эта строка занимает\nнесколько строк. Новые строки\nтоже выводятся";
print
PHP_EOL;

// В аргументах разрешается передавать выражения, которые вычисляются как строки
$foo = "пример";
print
"foo — это $foo"; // foo — это пример
print PHP_EOL;

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

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

// Конструкция print возвращает значение и поэтому допускается в выражениях
// Следующие выходные данные "привет мир"
if ( print "привет" ) {
echo
" мир";
}
print
PHP_EOL;

// Следующее выражение выводит "true"
( 1 === 1 ) ? print 'true' : print 'false';
print
PHP_EOL;

?>

Примечания

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

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

<?php

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 в более крупном выражении иногда требуется взять ключевое слово и его аргумент в круглые скобки, чтобы получить правильный результат:

<?php

if ((print "привет") && false) {
print
" — внутри if";
} else {
print
" — внутри else";
}
// Выведет "привет — внутри else".
// В отличие от предыдущего примера, выражение (print "привет") вычисляется первым.
// После вывода строки "привет" языковая конструкция print возвращает 1,
// поскольку выражение 1 && false — ложно, выполняется код в блоке else

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

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

?>

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

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