在PHP中这门言语中,因为是弱范例言语,因而运用变量时不需提早定义即可运用。我们在运用php举行开辟的时刻,大多数运用双引号、单引号举行定义字符串。既然有这两种体式格局,那末他们之间肯定是有区分的。而且,除了单双引号定义字符串这两种体式格局外,php还增加了heredoc和nowdoc这两种语法糖举行补充。
一、单引号
在单引号中,任何特别字符都邑按原样输出【除\\、\‘将会被转义输出】
比方:
<?php $var = 'this is a var!'; echo '666$var666、\'、\"、\\、\n、\r、\t、\$';
从上面例子中我们能够显著看到,变量是没有被剖析的;同时带反斜杠的转义字符仅仅只要单引号、反斜杠被转义输出了,其他的是直接输出。
相干引荐:《PHP入门教程》
二、双引号
在双引号中,碰到$将会剖析该变量;
双引号中会转义反斜杠的转义字符;
<?php $var = 'this is a var!'; echo "666$var 666、\'、\"、\\、\n、\r、\t、\$";
由上面例子我们能够晓得,双引号中的变量被剖析了,替代成字符串;其他带反斜杠的转义字符都举行了响应的转义。
单双引号之间的区分:
(1)双引号会替代变量的值,而单引号会把它当作字符串输出。
(2)关于转义的支撑。
(3)机能速率题目,因为双引号中的字符串须要检测是不是含有$标记润饰的变量,因而从理论上讲,单引号是比较快的。
三、heredoc
heredoc能够理解为不运用双引号来定义字符串,但结果与运用双引号一致。【此时双引号相当于一般字符】
语法请求:
1、最先标记和完毕标记运用雷同的字符串,通常以大写字母来写。
2、最先标记后不能涌现空格或过剩的字符。
3、完毕标记必需顶头写,不能有缩进和空格,且在完毕标记末端要有分号 。
4、位于最先标记和完毕标记之间的变量能够被一般剖析,然则函数则不能够。
比方:
<?php $var = 'this is suifeng'; echo <<<"EOT" <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf8" /> <title>"随风"</title> </head> <body> 66666666666<br/> "666666666"<br/> $var<br/> \$var<br/> \n666<br> </body> </html> EOT;
从打印的结果我们能够看出:此时双引号仅仅只是一个一般字符;其他的结果和双引号的字符串结果一致。
四、nowdoc
同理,nowdoc是不运用单引号来定义,但结果相当于运用单引号来定义的字符串。【此时单引号相当于一般字符】
语法同heredoc
比方:
<?php $var = 'this is suifeng'; echo <<<'EOT' <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf8" /> <title>"随风"</title> </head> <body> '02020'<br/> \'<br/> 66666666666<br/> "666666666"<br/> $var<br/> \$var<br/> \n666<br> </body> </html> EOT;
注重:
定界符以后必需不能有任何字符【特别是空格字符有时会没注重到】,不然将会失足。
如上例中的EOT背面有空格就会报这个毛病:【 Parse error : syntax error, unexpected '<<' (T_SL)】
以上就是php定义字符串的要领有哪些的细致内容,更多请关注ki4网别的相干文章!