PHP入门最基础语法
凡是在一对开始和结束标记之外的内容都会被 PHP 解析器忽略,这使得 PHP 文件可以具备混合内容。 可以使 PHP 嵌入到 HTML 文档中去,如下例所示。
This is going to be ignored by PHP and displayed by the browser.
This will also be ignored by PHP and displayed by the browser.
这将如预期中的运行,因为当 PHP 解释器碰到 ?> 结束标记时就简单地将其后内容原样输出(除非马上紧接换行 - 见指令分隔符)直到碰到下一个开始标记;
例外是处于条件语句中间时,此时 PHP 解释器会根据条件判断来决定哪些输出,哪些跳过。
见下例,注意if 和 else 后面的 : 冒号
使用条件结构:
This will show if the expression is true.
Otherwise this will show.
上例中 PHP 将跳过条件语句未达成的段落,即使该段落位于 PHP 开始和结束标记之外。
由于 PHP 解释器会在条件未达成时直接跳过该段条件语句块,(:?> 跳出了 PHP 模式并返回了 HTML 模式) 因此 PHP 会根据条件来忽略之。
要输出大段文本时,跳出 PHP 解析模式通常比将文本通过 echo 或 print 输出更有效率。
getData())):?>
--------------------------------------------------------------------------------
2,指令分隔符
一段 PHP 代码中的结束标记隐含表示了一个分号
在一个 PHP 代码段中的最后一行可以不用分号结束
如果后面还有新行,则代码段的结束标记包含了行结束。
echo "This is a test";
?>
Note:
文件末尾的 PHP 代码段结束标记可以不要
有些情况下当使用 include 或者 require 时省略掉会更好些,这样不期望的空白符就不会出现在文件末尾,之后仍然可以输出响应标头。
在使用输出缓冲时也很便利,就不会看到由包含文件生成的不期望的空白符。
342432353
otherwise this will show.
或者
342432353
otherwise this will show.
--------------------------------------------------------------------------------
PHP注释
echo "This is a test"; // This is a one-line c++ style comment
/* This is a multi line comment
yet another line of comment */
echo "This is yet another test";
echo 'One Final Test'; # This is a one-line shell-style comment
?>
单行注释仅仅注释到行末或者当前的 PHP 代码块,视乎哪个首先出现。
这意味着在 // ... ?> 或者 # ... ?> 之后的 HTML 代码将被显示出来
:?> 跳出了 PHP 模式并返回了 HTML 模式,// 或 # 并不能影响到这一点。
C 风格的注释在碰到第一个 */ 时结束。
/*
echo "This is a test"; /* This comment will cause a problem */
*/
echo 'kdfjal';
?>
将报错,输出空白
--------------------------------------------------------------------------------
String 字符串
一个字符串 string 就是由一系列的字符组成,其中每个字符等同于一个字节。这意味着 PHP 只能支持 256=2的8次方 的字符集,因此不支持 Unicode 。详见字符串类型详解。
Note: string 最大可以达到 2GB。
语法
一个字符串可以用 4 种方式表达:
单引号
双引号
heredoc 语法结构
nowdoc 语法结构(自 PHP 5.3.0 起)
--------------------------------------------------------------------------------
单引号
定义一个字符串的最简单的方法是用单引号把它包围起来(字符 ')。
要表达一个单引号自身,需在它的前面加个反斜线(\)来转义。
要表达一个反斜线自身,则用两个反斜线(\\)。
其它任何方式的反斜线都会被当成反斜线本身:也就是说如果想使用其它转义序列例如 \r 或者 \n,并不代表任何特殊含义,就单纯是这两个字符本身。
Note: 不像双引号和 heredoc 语法结构,在单引号字符串中的变量和特殊字符的转义序列将不会被替换。
echo 'this is a simple string';
// 可以录入多行
echo 'You can also have embedded newlines in
strings this way as it is
okay to do';
// 输出: Arnold once said: "I'll be back"
echo 'Arnold once said: "I\'ll be back"';
// 输出: You deleted C:\*.*?
echo 'You deleted C:\\*.*?';
// 输出: You deleted C:\*.*?
echo 'You deleted C:\*.*?';
// 输出: This will not expand: \n a newline
echo 'This will not expand: \n a newline';
// 输出: Variables do not $expand $either
echo 'Variables do not $expand $either';
?>
--------------------------------------------------------------------------------
双引号
如果字符串是包围在双引号(")中, PHP 将对一些特殊的字符进行解析:
转义字符
序列 含义
\n 换行(ASCII 字符集中的 LF 或 0x0A (10))
\r 回车(ASCII 字符集中的 CR 或 0x0D (13))
\t 水平制表符(ASCII 字符集中的 HT 或 0x09 (9))
\v 垂直制表符(ASCII 字符集中的 VT 或 0x0B (11))(自 PHP 5.2.5 起)
\e Escape(ASCII 字符集中的 ESC 或 0x1B (27))(自 PHP 5.4.0 起)
\f 换页(ASCII 字符集中的 FF 或 0x0C (12))(自 PHP 5.2.5 起)
\\ 反斜线
\$ 美元标记
\" 双引号
\[0-7]{1,3} 符合该正则表达式序列的是一个以八进制方式来表达的字符
\x[0-9A-Fa-f]{1,2} 符合该正则表达式序列的是一个以十六进制方式来表达的字符
和单引号字符串一样,转义任何其它字符都会导致反斜线被显示出来。PHP 5.1.1 以前,\{$var} 中的反斜线还不会被显示出来。
用双引号定义的字符串最重要的特征是变量会被解析,详见变量解析。
--------------------------------------------------------------------------------
Heredoc 结构
第三种表达字符串的方法是用 heredoc 句法结构:
结束时所引用的标识符必须在该行的第一列,而且,标识符的命名也要像其它标签一样遵守 PHP 的规则:只能包含字母、数字和下划线,并且必须以字母和下划线作为开头。
上一篇: 关于Ajax的探讨和研究
下一篇: 并发编程的艺术之读书笔记(二)