com doc/zh: Update language/basic-syntax.xml: language/basic-syntax.xml
[email protected] (Dai Jie) Sat, 16 Jan 2021 18:45:13 +0000
| Newsgroups | php.doc.zh |
|---|---|
| Message-ID | <[email protected]> |
Commit: 3fff290f4eb580cdab64ca26731d8e36d23b1d5b Author: 戴劼 <[email protected]> Sun, 17 Jan 2021 02:45:13 +0800 Parents: 3a090dd0bafd1a079942542959011cf777508607 Branches: master Link: http://git.php.net/?p=doc/zh.git;a=commitdiff;h=3fff290f4eb580cdab64ca26731d8e36d23b1d5b Log: Update language/basic-syntax.xml Changed paths: M language/basic-syntax.xml
diff_3fff290f4eb580cdab64ca26731d8e36d23b1d5b.txt
(text/plain, 8.9 KB)
diff --git a/language/basic-syntax.xml b/language/basic-syntax.xml
index 5543fc07..56d03497 100644
--- a/language/basic-syntax.xml
+++ b/language/basic-syntax.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- $Author$ -->
-<!-- EN-Revision: 203cd3e98e3c8c640cb34ed77bd61e9ddf3a86f8 Maintainer: verdana Status:ready -->
+<!-- EN-Revision: a71742330defbc0edfbc6822b4f947bf437b2f70 Maintainer: verdana Status:ready -->
<!-- CREDITS: dallas -->
<chapter xml:id="language.basic-syntax" xmlns="http://docbook.org/ns/docbook">
<title>基本语法</title>
@@ -14,32 +14,66 @@
可以被嵌入到各种不同的文档中去,而任何起始和结束标记之外的部分都会被
PHP 解析器忽略。
</para>
- <para>
- PHP 也允许使用短标记 <literal><?</literal> 和
- <literal>?></literal>,但不鼓励使用。只有通过激活 &php.ini;
- 中的 <link linkend="ini.short-open-tag">short_open_tag</link>
- 配置指令或者在编译 PHP 时使用了配置选项 <option>--enable-short-tags</option>
- 时才能使用短标记。
- </para>
- <para>
- 如果文件内容是纯 PHP 代码,最好在文件末尾删除 PHP
- 结束标记。这可以避免在 PHP 结束标记之后万一意外加入了空格或者换行符,会导致
- PHP 开始输出这些空白,而脚本中此时并无输出的意图。
- <informalexample>
- <programlisting role="php">
-<![CDATA[
-<?php
-echo "Hello world";
-// ... more code
+ <para>
+ PHP 有一个 echo 标记简写 <literal><?=</literal>,
+ 它是更完整的 <code><?php echo</code> 的简写形式。
+ </para>
+
+ <para>
+ <example>
+ <title>PHP 开始和结束标记</title>
+ <programlisting role="php">
+ <![CDATA[
+ 1. <?php echo 'if you want to serve PHP code in XHTML or XML documents,
+ use these tags'; ?>
+
+ 2. You can use the short echo tag to <?= 'print this string' ?>.
+ It's equivalent to <?php echo 'print this string' ?>.
+
+ 3. <? echo 'this code is within short tags, but will only work '.
+ 'if short_open_tag is enabled'; ?>
+ ]]>
+ </programlisting>
+ </example>
+ </para>
-echo "Last statement";
+ <para>
+ Short tags (example three) are available by default but can be disabled
+ either via the <link linkend="ini.short-open-tag">short_open_tag</link>
+ &php.ini; configuration file directive, or are disabled by default if
+ PHP is built with the <option>--disable-short-tags</option> configuration.
+ </para>
+
+ <para>
+ <note>
+ <para>
+ As short tags can be disabled it is recommened to only use the normal
+ tags (<code><?php ?></code> and <code><?= ?></code>) to
+ maximise compatibility.
+ </para>
+ </note>
+ </para>
-// 脚本至此结束,并无 PHP 结束标记
-]]>
- </programlisting>
- </informalexample>
- </para>
+ <para>
+ 如果文件内容仅仅包含 PHP 代码,最好在文件末尾删除 PHP
+ 结束标记。这可以避免在 PHP 结束标记之后万一意外加入了空格或者换行符,会导致
+ PHP 开始输出这些空白,而脚本中此时并无输出的意图。
+ <informalexample>
+ <programlisting role="php">
+ <![CDATA[
+ <?php
+ echo "Hello world";
+
+ // ... more code
+
+ echo "Last statement";
+
+ // 脚本至此结束,并无 PHP 结束标记
+ ]]>
+ </programlisting>
+ </informalexample>
+ </para>
</sect1>
<sect1 xml:id="language.basic-syntax.phpmode">
@@ -48,7 +82,7 @@ echo "Last statement";
凡是在一对开始和结束标记之外的内容都会被
PHP 解析器忽略,这使得 PHP 文件可以具备混合内容。 可以使 PHP
嵌入到 HTML 文档中去,如下例所示。
- <example>
+ <informalexample>
<programlisting role="php">
<![CDATA[
<p>This is going to be ignored by PHP and displayed by the browser.</p>
@@ -56,7 +90,7 @@ echo "Last statement";
<p>This will also be ignored by PHP and displayed by the browser.</p>
]]>
</programlisting>
- </example>
+ </informalexample>
这将如预期中的运行,因为当 PHP 解释器碰到 ?>
结束标记时就简单地将其后内容原样输出(除非马上紧接换行 - 见<link
linkend="language.basic-syntax.instruction-separation">指令分隔符</link>)直到碰到下一个开始标记;例外是处于条件语句中间时,此时
@@ -84,70 +118,13 @@ echo "Last statement";
<function>echo</function> 或 <function>print</function> 输出更有效率。
</para>
<para>
- 可以在 PHP 中使用四对不同的开始和结束标记。其中两种,<?php ?>
- 和 <script language="php"> </script> 总是可用的。另两种是短标记和
- <productname>ASP</productname> 风格标记,可以在 &php.ini;
- 配置文件中打开或关闭。尽管有些人觉得短标记和
- <productname>ASP</productname> 风格标记很方便,但移植性较差,通常不推荐使用。
- <note>
- <para>
- 此外注意如果将 PHP 嵌入到 XML 或 XHTML
- 中则需要使用 <?php ?> 标记以保持符合标准。
+ <note>
+ <para>
+ 此外注意如果将 PHP 嵌入到 XML 或 XHTML
+ 中则需要使用 <code><?php ?></code> 标记以保持符合标准。
+ </para>
+ </note>
</para>
- </note>
- </para>
- <para>
- <example>
- <title>PHP 开始和结束标记</title>
- <programlisting role="php">
-<![CDATA[
-1. <?php echo 'if you want to serve XHTML or XML documents, do it like this'; ?>
-
-2. <script language="php">
- echo 'some editors (like FrontPage) don\'t
- like processing instructions';
- </script>
-
-3. <? echo 'this is the simplest, an SGML processing instruction'; ?>
- <?= expression ?> This is a shortcut for "<? echo expression ?>"
-
-4. <% echo 'You may optionally use ASP-style tags'; %>
- <%= $variable; # This is a shortcut for "<% echo . . ." %>
-]]>
- </programlisting>
- </example>
- </para>
- <para>
- 上例中的 1 和 2 中使用的标记总是可用的,其中示例 1 中是最常用,并建议使用的。
- </para>
- <para>
- 短标记(上例 3)仅在通过 &php.ini; 配置文件中的指令
- <link linkend="ini.short-open-tag">short_open_tag</link>
- 打开后才可用,或者在 PHP 编译时加入了
- <option>--enable-short-tags</option> 选项。
- </para>
- <para>
- <productname>ASP</productname> 风格标记(上例 4)仅在通过 &php.ini;
- 配置文件中的指令
- <link linkend="ini.asp-tags">asp_tags</link> 打开后才可用。
- </para>
- <note>
- <para>
- 在以下情况应避免使用短标记:开发需要再次发布的程序或者库,或者在用户不能控制的服务器上开发。因为目标服务器可能不支持短标记。为了代码的移植及发行,确保不要使用短标记。
- </para>
- </note>
- <note>
- <para>
- 在 PHP 5.2 和之前的版本中,解释器不允许一个文件的全部内容就是一个开始标记
- <literal><?php</literal>。自 PHP 5.3 起则允许此种文件,但要开始标记后有一个或更多白空格符。
- </para>
- </note>
- <note>
- <para>
- 自 PHP 5.4 起,短格式的 echo 标记 <literal><?=</literal>
- 总会被识别并且合法,而不管 <link linkend="ini.short-open-tag">short_open_tag</link> 的设置是什么。
- </para>
- </note>
</sect1>
<sect1 xml:id="language.basic-syntax.instruction-separation">
@@ -156,6 +133,31 @@ echo "Last statement";
同 C 或 Perl 一样,PHP 需要在每个语句后用分号结束指令。一段 PHP
代码中的结束标记隐含表示了一个分号;在一个 PHP
代码段中的最后一行可以不用分号结束。如果后面还有新行,则代码段的结束标记包含了行结束。
+ </para>
+
+ <para>
+ <example>
+ <title>Example showing the closing tag encompasing the trailing newline</title>
+ <programlisting role="php">
+<![CDATA[
+<?php echo "Some text"; ?>
+No newline
+<?= "But newline now" ?>
+]]>
+ </programlisting>
+ &example.outputs;
+ <screen>
+<![CDATA[
+Some textNo newline
+But newline now
+]]>
+ </screen>
+ </example>
+ </para>
+
+ <para>
+ Examples of entering and exiting the PHP parser:
+
<informalexample>
<programlisting role="php">
<![CDATA[
@@ -202,11 +204,8 @@ echo "Last statement";
<literal>// ... ?></literal> 或者 <literal># ... ?></literal>
之后的 HTML 代码将被显示出来:?>
跳出了 PHP 模式并返回了 HTML 模式,<literal>//</literal> 或 <literal>#</literal>
- 并不能影响到这一点。如果启用了
- <link linkend="ini.asp-tags">asp_tags</link> 配置选项,其行为和
- <literal>// %></literal> 或 <literal># %></literal>
- 相同。不过,<literal></script></literal>
- 标记在单行注释中不会跳出 PHP 模式。
+ 并不能影响到这一点。
+
</simpara>
<para>
<informalexample>