字符串有4种表达方式:单引号、双引号、heredoc语法结构、nowdoc语法结构
1、单引号
// 输出: 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' ;
2、双引号
如果字符串是包围在双引号(”)中, PHP 将对一些特殊的字符进行解析;
3、heredoc语法结构
3-1、 Heredoc 结构就象是没有使用双引号的双引号字符串:单引号不用被转义、转义序列还可以使用、变量将被替换;
3-2、结束时所引用的标识符必须在该行的第一列,而且,标识符的命名也要像其它标签一样遵守 PHP 的规则:只能包含字母、数字和下划线,并且必须以字母和下划线作为开头。
4、Nowdoc 结构:Nowdoc 结构是类似于单引号字符串的
echo <<<'EOT'
My name is "$name". I am printing some $foo->foo.
Now, I am printing some {$foo->bar[1]}.
This should not print a capital 'A': \x41
EOT;
5、复杂(花括号)语法
$great = 'fantastic' ;
$arr = ['d'=>'d','key'=>'key'];
echo "This is { $great }" ; //This is { fantastic }
echo "This is {$great} <br>"; //This is fantastic
echo "This is { $great } "."<br>" ; //This is { fantastic }
echo "This is ${great} "."<br>"; //This is fantastic
echo "This works: {$arr [ 'key' ]} " ; //花括号需与变量名称紧挨着,否则会报错
6、字符串转换为数值
// 如果该字符串以合法的数值开始,则使用该数值。否则其值为 0(零)。
$foo = 1 + "10.5" ; // $foo is float (11.5)
$foo = 1 + "-1.3e3" ; // $foo is float (-1299) 指数部分由 'e' 或 'E' 后面跟着一个或多个数字构成。即是10的倍数
$foo = 1 + "bob-1.3e3" ; // $foo is integer (1)
$foo = 1 + "bob3" ; // $foo is integer (1)
$foo = 1 + "10 Small Pigs" ; // $foo is integer (11)
$foo = 4 + "10.2 Little Piggies" ; // $foo is float (14.2)
$foo = "10.0 pigs " + 1 ; // $foo is float (11)
$foo = "10.0 pigs " + 1.0 ; // $foo is float (11)
7、字符串即是一个数组
string的实现方式是:由字节组成的数组再加上一个整数指明缓冲区长度。