1
0
mirror of https://github.com/php/doc-ja.git synced 2026-04-26 09:28:10 +02:00
Files
archived-doc-ja/reference/strings/functions/echo.xml
T
Yoshinari Takaoka 6ec6edfe46 Concatenation has the same precedence as addition
This integrates user note 125110.


git-svn-id: https://svn.php.net/repository/phpdoc/ja/trunk@350034 c90b9560-bf6c-de11-be94-00142212c4b1
2020-06-14 19:34:55 +00:00

176 lines
5.5 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 5390e7919f8912672073bd6d412bcdef9f18a189 Maintainer: hirokawa Status: ready -->
<!-- CREDITS: shimooka,mumumu -->
<refentry xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://docbook.org/ns/docbook" xml:id="function.echo">
<refnamediv>
<refname>echo</refname>
<refpurpose>1 つ以上の文字列を出力する</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>void</type><methodname>echo</methodname>
<methodparam><type>string</type><parameter>arg1</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>...</parameter></methodparam>
</methodsynopsis>
<simpara>
すべてのパラメータを出力します。末尾に改行を付加することはありません。
</simpara>
<para>
<literal>echo</literal> は実際には関数ではありません
(言語構造です)。このため、使用する際に括弧は必要ありません。
(いくつかの他の言語構造と異なり) <literal>echo</literal>
は関数のように動作しません。そのため、
関数のコンテキスト中では常に使用することができません。
加えて、複数のパラメータを指定して <literal>echo</literal>
をコールしたい場合、括弧の中にパラメータを記述してはいけません。
</para>
<para>
<literal>echo</literal> には、開始タグの直後に等号を付ける短縮構文もあります。
この短縮構文は、PHP 5.4.0 より前のバージョンでは設定オプション<link
linkend="ini.short-open-tag">short_open_tag</link>
が有効な場合しか使えません。
<informalexample>
<programlisting role="php">
<![CDATA[
I have <?=$foo?> foo.
]]>
</programlisting>
</informalexample>
</para>
<para>
<literal>print</literal> との主な違いは、
<literal>echo</literal> がリスト形式の引数を受け付け、返り値を持たないことです。
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>arg1</parameter></term>
<listitem>
<para>
出力したいパラメータ。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>...</parameter></term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.void;
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><literal>echo</literal> の例</title>
<programlisting role="php">
<![CDATA[
<?php
echo "Hello World";
// 複数の文字列をそれぞれ別の引数として渡しても、
// すべて連結してひとつの引数として渡してもかまいません
echo 'This ', 'string ', 'was ', 'made ', 'with multiple parameters.', chr(10);
echo 'This ' . 'string ' . 'was ' . 'made ' . 'with concatenation.' . "\n";
// echo は関数のように動作しないので、以下のコードは正しくありません
($some_var) ? echo 'true' : echo 'false';
// しかし、次の例は動作します
($some_var) ? print 'true' : print 'false'; // print も言語構造ですが、
// 関数のように動作します。なので、
// このコンテキスト中で使用できます
echo $some_var ? 'true': 'false'; // 命令を変更
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
&note.language-construct;
<tip>
<para>
複数の文字列をひとつに連結せずそのまま
<function>echo</function> に渡す利点は、PHP におけるピリオド演算子の優先順位にあります。
複数の引数として渡す場合は、優先順位を考慮して括弧で囲んだりする必要はありません。
</para>
<programlisting role="php">
<![CDATA[
<?php
echo "Sum: ", 1 + 2;
echo "Hello ", isset($name) ? $name : "John Doe", "!";
]]>
</programlisting>
<para>
連結を使う場合は、ピリオド演算子の優先順位が加算演算子とは同じで、
三項演算子よりも高いことに注意する必要があります。
そのため、以下のような場合に期待どおりの動きをさせるためには括弧が必要になります。
</para>
<programlisting role="php">
<![CDATA[
<?php
echo 'Sum: ' . (1 + 2);
echo 'Hello ' . (isset($name) ? $name : 'John Doe') . '!';
]]>
</programlisting>
</tip>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>print</function></member>
<member><function>printf</function></member>
<member><function>flush</function></member>
<member><link linkend="language.types.string.syntax.heredoc">ヒアドキュメント構文</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
-->