PHP字符串三种定义方式
PHP的字符串有三种定义方式:单引号 、双引号 、定界符
1、单引号:指定一个简单字符串的最简单的方法是用单引号(字符 ')括起来。 在被单引号括起来的字符串中,要再表示一个单引号,需要用反斜线(\)转义,和很多其它语言一样。如果在单引号之前或字符串结尾需要出现一个反斜线,需要用两个反斜线表示。 在单引号括起来的字符串中,所有的其他特殊字符,都将被完整的表示出来,也就是说:单引号字符串中出现的变量和转义序列不会被变量的值替代。
2、双引号:如果用双引号(")括起字符串,PHP 可以解析更多特殊字符的转义序列:\n (换行 LF 或 ASCII 字符 0x0A(10))、\r (回车(CR 或 ASCII 字符 0x0D(13))、\t (水平制表符 HT 或 ASCII 字符 0x09(9))、\\ (反斜线) 、\$ (美元符号) 、\" (双引号) 、\[0-7]{1,3} (此正则表达式序列匹配一个用八进制符号表示的字符)、\x[0-9A-Fa-f]{1,2} (此正则表达式序列匹配一个用十六进制符号表示的字符 ),除了这些转义符,如果试图转义任何其它字符,反斜线本身也会被显示出来!在 PHP 5.1.1 之前,\{$var} 中的反斜线不会被显示出来。
当用双引号或者定界符指定字符串时,其中的变量会被解析。 有两种语法,一种简单的和一种复杂的。
简单语法最通用和方便,它提供了解析变量,数组值,或者对象属性的方法(如果遇到美元符号($),解析器会尽可能多地取得后面的字符以组成一个合法的变量名。如果想明示指定名字的结束,则用花括号把变量名括起来。 同样也可以解析数组索引或者对象属性。对于数组索引,右方括号(])标志着索引的结束。对象属性则和简单变量适用同样的规则,尽管对于对象属性没有像变量那样的小技巧)。
复杂语法是 PHP 4 引进的,可以用花括号括起一个表达式(事实上,用此语法可以在字符串中包含任何在名字空间的值。仅仅用和在字符串之外同样的方法写一个表达式,然后用 { 和 } 把它包含进来。因为不能转义“{”,此语法仅在 $ 紧跟在 { 后面时被识别(用“{\$”来得到一个字面上的“{$”)。例如:${test},{$test['t']['e']['s']['t']},{$test->test})。
3、定界符:另一种给字符串定界的方法使用定界符语法(“ 定界符文本表现的就和双引号字符串一样,只是没有双引号。这意味着在定界符文本中不需要转义引号,不过仍然可以用以上列出来的转义代码。变量会被展开,但当在定界符文本中表达复杂变量时和字符串一样同样也要注意。