初始化
PHP 字符串指的是字符的序列,PHP 字符串是二进制安全的 (例如:可以包含空字符)而且可以随意加长或缩短。
初始化
php 字符串可以通过3种方法进行初始化单引号
双引号
heredoc ("here document")
单引号
因为 php 不会检查单引号字符串中的插入变量以及任何转义序列,所以用这种方法定义字符直观,速度快
双引号
可以识别变量以及转义序列
转义序列列表转义序列列表\n换行 (ASII码10)
\r回车符 (ASII码13)
\t制表符 tab (ASII码9)
\反斜杠
\$美元符号
\"双引号
\0至\777八进制数值
\x0至\xFF十六进制数值
使用双引号,可以有三种方法打印出 "The sauce cost $10.25"
1echo "The sauce cost \$10.25"
2$cost='$10.25';
echo "The sauce cost $cost";
3echo "The sauce cost \$\061\060.\x32\x35."
heredoc
heredoc 定义的字符串可以识别变量和双引号字符能够识别的转义序列,且不需要对双引号和单引号进行转义
heredoc 以符号 <<< 加一个记号来定义字符串的开始(记号不能为空行或者带有空格,一般为大写),并以该记号后跟一个分号(如必要)标识字符串的结尾。
结尾带分号echo <<
I've gone to the sotre, the sauce cost \$10.25
My_doc;
结尾不带分号$cost='$10.25';
echo <<
I've gone to the sotre, the sauce cost
My_doc
.$cost;要注意的是结束标识符这行除了可能有一个分号(;)外,绝对不能包含其它字符。这意味着标识符不能缩进,分号的前后也不能有任何空白或制表符。更重要的是结束标识符的前面必须是个被本地操作系统认可的换行,比如在 UNIX 和 Mac OS X 系统中是 \n,而结束定界符(可能其后有个分号)之后也必须紧跟一个换行。
如果不遵守该规则导致结束标识不“干净”,PHP 将认为它不是结束标识符而继续寻找。如果在文件结束前也没有找到一个正确的结束标识符,PHP 将会在最后一行产生一个解析错误。
转自 php 手册 http://php.net/manual/zh/language.types.string.php#language.types.string.syntax.heredoc
7 种输出 "The sauce cost $10.25" 的方法
1echo "The sauce cost $10.25"
2echo "The sauce cost \$10.25"
3$cost='$10.25';
echo "The sauce cost $cost";
4echo "The sauce cost \$\061\060.\x32\x35."
5echo <<
The sauce cost \$10.25
My_doc;
6$cost='$10.25';
echo <<
The sauce cost
My_DOC
.$cost;
7$doc = <<
The sauce cost \$10.25
My_DOC;
echo $doc;
获得字符串中的字符
字符串中制定位置的字符可以通过两种方法引用方括号和大括号。 推荐使用大括号,因为大括号应用是后来加入 php 中,用来直观的分辨出字符串索引和数组索引。
以下两个语句都可以输出 e 字母$str="neighbour";
echo $str{1};
echo $str[1];