mirror of
https://github.com/php/doc-ru.git
synced 2026-03-26 00:32:15 +01:00
219 lines
7.8 KiB
XML
219 lines
7.8 KiB
XML
<?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>
|
||
|
||
¬e.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
|
||
-->
|