PHP 字符串指的是字符的序列,PHP 字符串是二进制安全的 (例如:可以包含空字符)而且可以随意加长或缩短。
成都创新互联专注骨干网络服务器租用10多年,服务更有保障!服务器租用,四川联通机房服务器托管 成都服务器租用,成都服务器托管,骨干网络带宽,享受低延迟,高速访问。灵活、实现低成本的共享或公网数据中心高速带宽的专属高性能服务器。php 字符串可以通过3种方法进行初始化
单引号
双引号
heredoc ("here document")
因为 php 不会检查单引号字符串中的插入变量
以及任何转义序列
,所以用这种方法定义字符直观,速度快
可以识别变量
以及转义序列
转义序列列表
转义序列 | 列表 |
---|---|
换行 (ASII码10) | |
\r | 回车符 (ASII码13) |
\t | 制表符 tab (ASII码9) |
\ | 反斜杠 |
\$ | 美元符号 |
\" | 双引号 |
\0至\777 | 八进制数值 |
\x0至\xFF | 十六进制数值 |
使用双引号,可以有三种方法打印出 "The sauce cost $10.25"
1
echo "The sauce cost \$10.25"
2
$cost='$10.25'; echo "The sauce cost $cost";
3
echo "The sauce cost \$\061\060.\x32\x35."
heredoc 定义的字符串可以识别变量
和双引号字符能够识别的转义序列
,且不需要对双引号和单引号进行转义
heredoc 以符号 <<<
加一个记号
来定义字符串的开始(记号不能为空行或者带有空格,一般为大写),并以该记号后跟一个分号(如必要)标识字符串的结尾。
结尾带分号
echo <<< My_doc I've gone to the sotre, the sauce cost \$10.25 My_doc;
结尾不带分号
$cost='$10.25'; echo <<< My_doc 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
1
echo "The sauce cost $10.25"
2
echo "The sauce cost \$10.25"
3
$cost='$10.25'; echo "The sauce cost $cost";
4
echo "The sauce cost \$\061\060.\x32\x35."
5
echo <<< My_doc The sauce cost \$10.25 My_doc;
6
$cost='$10.25'; echo <<< My_DOC The sauce cost My_DOC .$cost;
7
$doc = <<< My_DOC The sauce cost \$10.25 My_DOC; echo $doc;
字符串中制定位置的字符可以通过两种方法引用方括号
和大括号
。 推荐使用大括号
,因为大括号应用是后来加入 php 中,用来直观的分辨出字符串索引和数组索引。
以下两个语句都可以输出 e 字母
$str="neighbour"; echo $str{1}; echo $str[1];
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。