print
(PHP 4, PHP 5, PHP 7, PHP 8)
print — Выводит строку
Описание
print — не функция, а языковая конструкция.
Аргумент языковой конструкции — выражение после ключевого слова print
без круглых скобок.
Основные отличия от конструкции echo состоят в том,
что конструкция print принимает только один аргумент
и при каждом вызове возвращает значение 1.
Возвращаемые значения
Языковая конструкция всегда возвращает 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.
При вызове конструкции print в более крупном выражении
иногда требуется взять ключевое слово и его аргумент
в круглые скобки, чтобы получить правильный результат:
Замечание:
Конструкцию нельзя вызывать как функцию переменной
или передавать как именованный аргумент,
поскольку это языковая конструкция, а не функция.