PHP 标记
<?php ?>
,这告诉 PHP 开始和停止解析二者之间的代码。
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 . . ." %>
上例中的 1 和 2 中总是可用的,其中示例 1 中是建议使用的。
短标记(上例 3)仅在通过 php.ini 配置文件中的指令 short_open_tag
打开后才可用,或者在 PHP 编译时加入了 --enable-short-tags
选项。
ASP 风格标记(上例 4)仅在通过 php.ini 配置文件中的指令 asp_tags
打开后才可用。
如:
<?php echo "hello" ?>
注意事项:
开始标记是:<?php[whitespace]
,而不是<?php
。
另外,如下代码:
<pre>
my
name
<?php echo "is:"?>
Oliver
</pre>
结果是:
my
name
is: Oliver
代码如果改成:
<pre>
my
name
<?php echo "is:"?> //这里的最后加上一个空格
Oliver
</pre>
结果就是:
my
name
is:
Oliver
从 HTML 中分离
可以使 PHP 嵌入到 HTML 文档中去,如下例所示。
<h1>this is a title in the browser</h1>
<?php echo "<p>this is another paragraph.</p>" ?>
<p>this is a paragraph</p>
上述代码的结果直接显示:
<h1>this is a title in the browser</h1>
<p>this is another paragraph.</p><p>this is a paragraph</p>
如果将代码改为:
<h1>this is a title in the browser</h1>
<?php echo "<p>this is another paragraph.</p>\r" ?>
<p>this is a paragraph</p>
结果则显示的是:
<h1>this is a title in the browser</h1>
<p>this is another paragraph.</p>
<p>this is a paragraph</p>
当 PHP 解释器碰到 ?> 结束标记时就简单地将其后内容原样输出除非马上紧接换行,例外是处于条件语句中间时,此时 PHP 解释器会根据条件判断来决定哪些输出,哪些跳过。如:
使用条件的高级分离术:
<?php if ($expression == true): ?>
This will show if the expression is true.
<?php else: ?>
Otherwise this will show.
<?php endif; ?>
如:
<?php if (100 > 20): ?>
<p>bigger</p>
<?php else: ?>
<p>smaller</p>
<?php endif; ?>
上述代码的结果直接显示:
<p>bigger</p>
要输出大段文本时,跳出 PHP 解析模式通常比将文本通过 echo 或 print 输出更有效率。
又或者如下for循环代码:
<?php for ($i=0; $i < 4; $i++): ?>
<p>hello i am in the loop.</p>
<?php endfor; ?>
结果则显示的是:
<p>hello i am in the loop.</p>
<p>hello i am in the loop.</p>
<p>hello i am in the loop.</p>
<p>hello i am in the loop.</p>
如foreach循环代码:
<?php $arr = array(1,2,3,4,5,6); ?>
<?php foreach ($arr as $i): ?>
<?php echo $i ?>
<p>hello</p>
<?php endforeach ?>
结果则显示的是:
1 <p>hello</p>
2 <p>hello</p>
3 <p>hello</p>
4 <p>hello</p>
5 <p>hello</p>
6 <p>hello</p>
又如while循环语句:
<?php $i=0 ?>
<?php while ($i < 10): ?>
<?php echo $i; ?>
<p>in the loop.</p>
<?php $i++ ?>
<?php endwhile; ?>
结果则显示的是:
0<p>in the loop.</p>
1<p>in the loop.</p>
2<p>in the loop.</p>
3<p>in the loop.</p>
4<p>in the loop.</p>
5<p>in the loop.</p>
6<p>in the loop.</p>
7<p>in the loop.</p>
8<p>in the loop.</p>
9<p>in the loop.</p>
指令分隔符
PHP 需要在每个语句后用分号结束指令。
<?php echo "hello"; ?> //加上分号
<?php echo "hello" ?>
文件末尾的 PHP 代码段结束标记可以不要
有些情况下当使用 include 或者 require 时省略掉会更好些
注释
注释风格如下:
<?php
echo "testing area."; //the one-line c++ style comment
/* multi line comment
multi line comment.*/
echo "Testing."; #another one-line shell-style comment
?>
C 风格的注释在碰到第一个 */ 时结束。要确保不要嵌套 C 风格的注释。试图注释掉一大块代码时很容易出现该错误。
<?php
/*
echo "This is a test"; /* This comment will cause a problem */
*/
?>
另外,使用如下代码可以方便其他人阅读(J.Prettyman):
<?php
//======================================================================
// CATEGORY LARGE FONT
//======================================================================
//-----------------------------------------------------
// Sub-Category Smaller Font
//-----------------------------------------------------
/* Title Here Notice the First Letters are Capitalized */
# Option 1
# Option 2
# Option 3
/*
*This is a detailed explanation
*of something that should require
*several paragraphs of information.
*/
// This is a single line quote.
?>
此外,不要对php代码部分使用html注释格式(<!---->):
<!--
<?php echo blablabla result(); ?>
-->
这样的做法是不正确的。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。