PHP标记风格:
<span //</span><span XML风格<br />//推荐的标记风格,可以在XML文档中使用</span> <?php <span echo</span> '<p>XML Style</p>'; ?> <span //</span><span 简短风格——需启用short_open_tag选项,遵循SGML(标准通用置标语言)处理说明</span> <? <span echo</span> '<p>Short Style</p>'; ?> <span //</span><span Asp风格——需启用asp_tag选项,默认禁用</span> <% <span echo</span> '<p>Asp Style</p>'; %> <span //</span><span Script风格——HTML编辑器无法支持其他标记风格时选用</span> <script language='php;>echo '<p>Script Style</p>';</script>
<span //</span><span 多行注释<br /></span>
<span /* </span><span C风格注释 C风格注释 C风格注释 </span><span */</span>
<span //单行注释<br /></span>
<span //</span><span C++风格注释</span> <span #</span><span Shell脚本风格注释<br /></span>
<span /*</span><span 在这里特别要注意的是, 注释符号(#或//)之后,行结束或PHP结束标记(?>)之前,所有内容都是注释。<br /> 如下例,"<span Here is HTML</span>"将被当作是HTML,因为他位于关闭标记之外 </span><span */<br /></span>
<span //</span><span Here is a Comment ?> Here is HTML</span>
<span //</span><span Short Style——需启用register_globals选项</span> <span $Name;</span> <span //</span><span Medium Style——PHP 4.1.0后支持</span> <span $_POST</span>['Name'<span ]; </span><span $_GET</span>['Name'<span ]; </span><span //</span><span Long Style——通过register_long_arrays禁用</span> <span $HTTP_POST_VARS</span>['Name'<span ]; </span><span $HTTP_GET_VARS</span>['Name'];<br /><br /><span //</span><span 三种方法的使用讨论<br /><br />/*Short Style<br /> 表单变量会自动转换成全局变量,有可能会遇到破坏脚本安全性的程序错误<br /> 在使用是应对自己的变量赋予一个初始值<br />*/<br /></span>
<span /*Medium Style<br /> 涉及到从$_POST、$_GET或$_REQUEST数组之一检索变量<br /> 这三个数组被称作是超级全局(superglobal)变量<br /> 选用$<span _POST<span <span 或</span></span>$_GET取决于提交表单的方法(POST or GET),但都可通过<span $_REQUEST</span>['Name']获取数据</span><br />*/</span>
<span /*Long Style<br /> 已经过时,禁用后可以改进性能<br />*/</span>
<span //</span><span PHP中一个字符串可以通过下面的4种方式来定义: <br /><span //</span><span 双引号("")</span> <br /><span echo</span> "Character string"<span ;<br /></span> //单引号('')</span> <span echo</span> 'Character String'<span ;<br /><br /></span><span //</span><span heredoc结构(PHP4.0后引进) </span> <span echo</span> <<<<span EOD heredoc heredoc heredoc </span><span EOD;<br /></span><span <br /><span //</span><span heredoc结构(PHP<span 5.3.0</span>后引进) </span><br />echo</span> <<<"<span EOD" heredoc heredoc heredoc </span><span EOD;<br /> </span><span //</span><span nowdoc<span 结构</span>(PHP5.3.0后引进) </span> <span echo</span> <<<'EOT'<span nowdoc nowdoc nowdoc </span>EOT;<br /><br /><span /*用法<br /> 1.单引号<br /> 要表达一个单引号自身,需在它的前面加个反斜线(<em>\</em>)来转义,要表达一个反斜线自身,则用两个反斜线(<em>\\</em>)。<br /> 其它任何方式的反斜线都会被当成反斜线本身,<br /> 例如 <em>\r</em> 或者 <em>\n</em>,并不代表任何特殊含义,就单纯是这两个字符本身。<br /> 2.双引号<br /> <span 双引号定义的字符串最重要的特征是变量会被解析</span><br /> 字符串是包围在双引号(")中, PHP将对一些特殊的字符进行解析<br /> 3.Heredoc结构<br /> <<<,在该运算符之后要提供一个标识符(<span 命名遵守PHP规则)</span>,然后换行,<br /> 接下来是字符串 string 本身,<br /> 最后要用前面定义的标识符作为结束标志。<br /> <br /><span */<br /></span><br /><span /*</span>注意事项<br /> 1.双引号与Heredoc结构是插补的[<span 插补(interpolation)特性:用一个字符串的内容来代替一个变量的操作</span>]<br /> 2.<span 双引号</span>与单引号,Heredoc语法与Nowdoc语法之间的区别和效率问题:<br /> 由于双引号/Heredoc语法要进行插补操作,其中的字段会经过编译器的解释,然后再当做HTML代码输出;<br /> 而单引号/Nowdoc语法内的字段不会进行解释,直接输出。<br /> 3.Heredoc结构/Nowdoc结构结束时所引用的标识符必须在该行的第一列,<br /> 结束标识符这行除了可能有一个分号(;)外,绝对不能包含其它字符,<br /> 且分号的前后也不能有任何空白或制表符。<br /> *在Heredoc结构中含有复杂的变量时要格外小心<br /> 4.PHP5.3.0后,Heredoc结构<span 也可用</span>来初始化静态变量和类的属性和常量:<br /></span>
<span //</span><span 静态变量</span> <span function</span><span foo(){ </span><span static</span> <span $bar</span> = <<<<span LABEL Nothing in here</span>...<span LABEL; } </span><span //</span><span 类的常量、属性</span> <span class</span><span foo{ </span><span const</span> BAR = <<<<span FOOBAR </span><span Constant</span><span example FOOBAR; </span><span public</span> <span $baz</span> = <<<<span FOOBAR Property example FOOBAR; }</span>
<span 5.Nowdoc结构可以用在任意的静态数据环境中,最典型的示例是用来初始化类的属性或常量:<br /></span>
<span class</span><span foo { </span><span public</span> <span $bar</span> = <<<'EOT'<span bar EOT; }</span>
<span */<br /></span>
<span <span <span /*</span></span>附:转义字符<br /> \n 换行(ASCII 字符集中的 LF 或 0x0A (10))<br /> \r 回车(ASCII 字符集中的 CR 或 0x0D (13))<br /> \t 水平制表符(ASCII 字符集中的 HT 或 0x09 (9))<br /> \v 垂直制表符(ASCII 字符集中的 VT 或 0x0B (11))(自 PHP 5.2.5 起)<br /> \e Escape(ASCII 字符集中的 ESC 或 0x1B (27))(自 PHP 5.4.0 起)<br /> \f 换页(ASCII 字符集中的 FF 或 0x0C (12))(自 PHP 5.2.5 起)<br /> \\ 反斜线<br /> \$ 美元标记<br /> \" 双引号<br /> \[0-7]{1,3} 符合该正则表达式序列的是一个以八进制方式来表达的字符<br /> \x[0-9A-Fa-f]{1,2} 符合该正则表达式序列的是一个以十六进制方式来表达的字符<br />*/<br /></span>
<span //</span><span 当字符串用双引号或 heredoc结构定义时,其中的变量将会被解析。</span> <span /*</span><span 简单语法: 当PHP解析器遇到“$”时,它会组合尽量多的标识以形成一个合法的变量名 </span><span */</span> <span /*</span><span 复杂语法: 像在string以外的地方那样写出表达式, 然后用花括号 { 和 } 把它括起来即可。 由于 { 无法被转义,只有 $ 紧挨着 { 时才会被识别。可以用 {\$ 来表达 {$。 </span><span */<br /><br />#<span 下次继续</span>变量解析的深入学习</span>