(PHP 4, PHP 5, PHP 7, PHP 8)
print — Выводит строку
Языковая конструкция выводит выражение expression
.
print
— не функция, а языковая конструкция.
Аргумент языковой конструкции — выражение после ключевого слова print
без круглых скобок.
Основные отличия от конструкции echo состоят в том,
что конструкция print
принимает только один аргумент
и при каждом вызове возвращает значение 1
.
expression
Выражение, которое требуется вывести. Нестроковые значения преобразуются в строки,
даже если включили директиву
strict_types
.
Языковая конструкция всегда возвращает 1
.
Пример #1 Примеры использования языковой конструкции print
<?php
print "print не требует скобок.";
// Новая строка или пробел не добавляются; ниже выводит «приветмир» в одну строку
print "привет";
print "мир";
print "Эта строка занимает
несколько строк. Новые строки
также будут выведены";
print "Эта строка занимает\nнесколько строк. Новые строки\nтакже будут выведены";
// Аргументом может быть любое выражение, производящее строку
$foo = "пример";
print "foo — это $foo"; // foo — это пример
$fruits = ["лимон", "апельсин", "банан"];
print implode(" и ", $fruits); // лимон и апельсин и банан
// Нестроковые выражения приводятся к строковым, даже если установлено declare(strict_types=1)
print 6 * 7; // 42
// Поскольку у конструкции print есть возвращаемое значение, её разрешено вызвать в выражениях
// Следующие выходные данные «привет мир»
if ( print "привет" ) {
echo " мир";
}
// следующее выражение выведет «true»
( 1 === 1 ) ? print 'true' : print 'false';
?>
Замечание: Использование с круглыми скобками
Заключение аргумента конструкции
<?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
?>При вызове конструкции
<?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
// выполнятьтся перед оператором &&
?>
Замечание: Поскольку это языковая конструкция, а не функция, её нельзя вызывать как функцию переменной или передавать как именованный аргумент.