//PHP中一个字符串可以通过下面的4种方式来定义:
//双引号("")
echo "Character string";
//单引号('')
echo 'Character String';
//heredoc结构(PHP4.0后引进)
echo <<
heredoc
heredoc
heredoc
EOD;
//heredoc结构(PHP5.3.0后引进)
echo <<
heredoc
heredoc
heredoc
EOD;
//nowdoc结构(PHP5.3.0后引进)
echo <<
nowdoc
nowdoc
nowdoc
EOT;
/*用法
1.单引号
要表达一个单引号自身,需在它的前面加个反斜线(\)来转义,要表达一个反斜线自身,则用两个反斜线(\\)。
其它任何方式的反斜线都会被当成反斜线本身,
例如 \r 或者 \n,并不代表任何特殊含义,就单纯是这两个字符本身。
2.双引号
双引号定义的字符串最重要的特征是变量会被解析
字符串是包围在双引号(")中, PHP将对一些特殊的字符进行解析
3.Heredoc结构
<<
接下来是字符串 string 本身,
最后要用前面定义的标识符作为结束标志。
*/
/*注意事项
1.双引号与Heredoc结构是插补的[插补(interpolation)特性:用一个字符串的内容来代替一个变量的操作]
2.双引号与单引号,Heredoc语法与Nowdoc语法之间的区别和效率问题:
由于双引号/Heredoc语法要进行插补操作,其中的字段会经过编译器的解释,然后再当做HTML代码输出;
而单引号/Nowdoc语法内的字段不会进行解释,直接输出。
3.Heredoc结构/Nowdoc结构结束时所引用的标识符必须在该行的第一列,
结束标识符这行除了可能有一个分号(;)外,绝对不能包含其它字符,
且分号的前后也不能有任何空白或制表符。
*在Heredoc结构中含有复杂的变量时要格外小心
4.PHP5.3.0后,Heredoc结构也可用来初始化静态变量和类的属性和常量:
//静态变量
function foo(){
static $bar = <<
Nothing in here...
LABEL;
}
//类的常量、属性
class foo{
const BAR = <<
Constant example
FOOBAR;
public $baz = <<
Property example
FOOBAR;
}
5.Nowdoc结构可以用在任意的静态数据环境中,最典型的示例是用来初始化类的属性或常量:
class foo {
public $bar = <<
bar
EOT;
} www.jbxue.com
*/
/*附:转义字符
\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} 符合该正则表达式序列的是一个以十六进制方式来表达的字符
*/