mirror of
https://github.com/php/doc-ru.git
synced 2026-04-23 15:28:24 +02:00
c394cf8502
* Update book.xml to en * Update addcslashes.xml to en * Update addslashes.xml to en * Update sprintf.xml to en * Update chr.xml to en * Update chunk-split.xml to en * Update echo.xml to en * Update explode.xml to en * Update fprintf.xml to en * Update html-entity-decode.xml to en * Update lcfirst.xml to en * Update md5-file.xml to en * Update number-format.xml to en * Update ord.xml to en * Update echo.xml * Update print.xml to en * Update setlocale.xml to en * Update sha1-file.xml to en * Update soundex.xml to en * Update str-getcsv.xml to en * Update str-pad.xml to en * Update str-replace.xml to en * Update stripos.xml to en * Update stristr.xml to en * Update strlen.xml to en * Update strnatcmp.xml to en * Update strpbrk.xml to en * Update strpos.xml to en * Update strrpos.xml to en * Update strstr.xml to en * Update strtok.xml toen * Update strtr.xml to en * Update substr-compare.xml to en * Update substr-count.xml to en * Update substr.xml to en * Update ucfirst.xml to en * Update ucwords.xml to en * Update vfprintf.xml to en
226 lines
8.2 KiB
XML
226 lines
8.2 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- EN-Revision: 45042fef652f1b4e904e809fcbfcf31f6c60670b 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 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;
|
|
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="notes">
|
|
&reftitle.notes;
|
|
|
|
<note>
|
|
<title>Использование с круглыми скобками</title>
|
|
<para>
|
|
Заключение аргумента конструкции <literal>print</literal> в круглые скобки
|
|
не вызовет синтаксической ошибки и создаст синтаксис, который выглядит как обычный
|
|
вызов функции. Однако это вводит в заблуждение, поскольку круглые скобки —
|
|
часть выводимого выражения, а не часть самого синтаксиса <literal>print</literal>.
|
|
|
|
<informalexample>
|
|
<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>
|
|
</informalexample>
|
|
</para>
|
|
|
|
<para>
|
|
При вызове конструкции <literal>print</literal> в более крупном выражении
|
|
иногда требуется взять ключевое слово и его аргумент
|
|
в круглые скобки, чтобы получить правильный результат:
|
|
|
|
<informalexample>
|
|
<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>
|
|
</informalexample>
|
|
</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
|
|
-->
|