在 PHP 处理文件的时候,它会寻找打开与关闭标记,从而告诉 PHP 开始并且结束它们之间的代码解释。以这种方式的处理允许 PHP 被嵌入到所有不同类型的文档中,而打开与关闭标记对之外的一切都会被 PHP 解析器忽略一样。多数时候你将看到 PHP 被嵌入在 HTML 文档中,与这个范例一样。
<p>This is going to be ignored.</p>
<?php echo 'While this is going to be parsed.'; ?>
<p>This will also be ignored.</p>
你同样可以使用更多高级结构:
高级的转码
<?php
if ($expression) {
?>
<strong>This is true.</strong>
<?php
} else {
?>
<strong>This is false.</strong>
<?php
}
?>
这会与所预期的一样工作,因为在 PHP 找到结束标记 ?> 的时候,它简单地开始输出它所找到的一切,直到它找到其他打开标记为止。这里所提供的范例是被策划的,当然,但是至于输出庞大的文本块,跳出 PHP 解析模式通常是比通过 echo() 或者 print() 发送所有文本更加有效率的做法。
这里有四种不同的打开与关闭标记对可以在 PHP 中被使用。<?php ?> 与 <script language="php"> </script> 这两种都是始终可用的。而另外两种则是短标记与 ASP 风格标记,也都可以从 php.ini 配置文件中被启用或者禁用。同样,虽然有些人发现短标记与 ASP 风格标记是更加方便的,但是它们的可移植能力较少,并且通常不是被建议的。
提示:同样注意如果你把 PHP 嵌入到 XML 或者 XHTML 中,你就需要使用 <?php ?> 标记来遵循标准。
PHP 打开与关闭标记
1. <?php echo 'if you want to serve XHTML or XML documents, do 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 . . ." %>
虽然范例中的这些标记有一两种始终都是可用的,但是范例一却是最常被使用的,而范例二则是被建议的。
短标记(范例三)只在它们通过 php.ini 配置文件指令 short_open_tag 而被启用的时候才是可用的,或者如果 PHP 以 --enable-short-tags 选项而被配置。
提示:如果你使用的是 PHP 3,那么你同样可以通过 short_tags() 函数来启用短标记。但是这只在 PHP 3 中才是可用的!
ASP 风格标记(范例四)只在它们通过 php.ini 配置文件指令 asp_tags 而被启用的时候才是可用的。
提示:对于 ASP 标记的支持在 3.0.4 版本中才被加入。
提示:在为了重新分配而开发应用程序或者库的时候应该避免使用短标记,或者在布署在不能够被你所控制的 PHP 服务器上的时候,因为短标记可能不被目标服务器所支持。在出于可移植而重新分配代码的时候,应该确保没有使用短标记。