(PHP 4, PHP 5, PHP 7, PHP 8)
print — Выводит строку
$expression
): int
Выводит expression
.
print
- это не функция, а языковая конструкция.
Его аргумент - это выражение после ключевого слова print
, не ограниченное круглыми скобками.
Главное отличие от echo
в том, что
print
принимает только один аргумент и всегда возвращает 1
.
expression
Выражение для вывода. Нестроковые значения будут преобразованы в строки,
даже если включена директива
strict_types
.
Всегда возвращает 1
.
Пример #1 Примеры использования print
<?php
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';
?>
Замечание: Использование с круглыми скобками
Заключение аргумента
<?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
// выполнятьтся перед &&
?>
Замечание: Поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций или именованных аргументов.