1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-26 00:32:15 +01:00
Files
archived-doc-ru/reference/strings/functions/print.xml
2024-01-17 23:49:05 +03:00

219 lines
7.8 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 7a3899eea90f3df8dcfe8fd350900162f3490bed Maintainer: shein Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://docbook.org/ns/docbook" xml:id="function.print">
<refnamediv>
<refname>print</refname>
<refpurpose>Выводит строку</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>int</type><methodname>print</methodname>
<methodparam><type>string</type><parameter>expression</parameter></methodparam>
</methodsynopsis>
<para>
Выводит выражение <parameter>expression</parameter>.
</para>
<para>
<literal>print</literal> — это не функция, а языковая конструкция.
Её аргумент — это выражение после ключевого слова <literal>print</literal>, не ограниченное круглыми скобками.
</para>
<para>
Основные отличия от конструкции <function>echo</function> состоят в том, что
конструкция <literal>print</literal> принимает только один аргумент и всегда возвращает <literal>1</literal>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>expression</parameter></term>
<listitem>
<para>
Выражение для вывода. Нестроковые значения будут преобразованы в строки,
даже если <link linkend="language.types.declarations.strict">включена директива
<literal>strict_types</literal></link>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Всегда возвращает <literal>1</literal>.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Примеры использования языковой конструкции <literal>print</literal></title>
<programlisting role="php">
<![CDATA[
<?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';
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<title>Использование с круглыми скобками</title>
<para>
Заключение аргумента <literal>print</literal> в круглые скобки не
вызовет синтаксической ошибки и создаст синтаксис, который выглядит как обычный
вызов функции. Однако это может ввести в заблуждение, поскольку круглые скобки —
частью выводимого выражения, а не часть самого синтаксиса <literal>print</literal>.
</para>
<para>
<example>
<title/>
<programlisting role="php">
<![CDATA[
<?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
?>
]]>
</programlisting>
</example>
</para>
<para>
При вызове <literal>print</literal> в более крупном выражении
может потребоваться размещение ключевого слова и его аргумента
в круглых скобках для получения нужного результата:
</para>
<para>
<example>
<title/>
<programlisting role="php">
<![CDATA[
<?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
// выполнятьтся перед оператором &&
?>
]]>
</programlisting>
</example>
</para>
</note>
&note.language-construct;
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>echo</function></member>
<member><function>printf</function></member>
<member><function>flush</function></member>
<member><link linkend="language.types.string">Способы работы со строками</link></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->