• 技术文章 >后端开发 >php教程

    通过PHP来定义字符串的四种方式的详解

    php中世界最好的语言php中世界最好的语言2018-03-05 13:59:04原创805
    下面的文章小编将为大家介绍如何用PHP来定义字符串,定义字符串共分为四种定义方式,需要的朋友可以参考一下,一起和小编了解如何定义字符串吧。

    1、简介

    在PHP中这门语言中,因为是弱类型语言,因此使用变量时不需提前定义即可使用。

    我们在使用php进行开发的时候,大多数使用双引号、单引号进行定义字符串。既然有这两种方式,那么他们之间肯定是有区别的。

    并且,除了单双引号定义字符串这两种方式外,php还增加了heredoc和nowdoc这两种语法糖进行补充。

    2、单引号与双引号

    2.1、单引号

    在单引号中,任何特殊字符都会按原样输出【除\\、\‘将会被转义输出】

    eg.

    <?php
    $var = 'this is a var!';
    echo '666$var666、\'、\"、\\、\n、\r、\t、\$';


    从上面例子中我们可以明显看到,变量是没有被解析的;同时带反斜杠的转义字符仅仅只有单引号、反斜杠被转义输出了,其他的是直接输出。

    2.2、双引号

    在双引号中,遇到$将会解析该变量;

    双引号中会转义反斜杠的转义字符;

    <?php
    $var = 'this is a var!'; 
    echo "666$var 666、\'、\"、\\、\n、\r、\t、\$";
    转义字符代码转义字符的含义
    \ "双引号
    \ '单引号
    \ \反斜杠
    \ n换行符
    \ r回车符
    \ t制表符
    \ $美元符号

    由上面例子我们可以知道,双引号中的变量被解析了,替换成字符串;其他带反斜杠的转义字符都进行了相应的转义。

    2.3、单双引号之间的区别

    以上两者主要区别:

    1、 双引号会替换变量的值,而单引号会把它当做字符串输出。

    2、对于转义的支持

    3、性能速度问题,由于双引号中的字符串需要检测是否含有$符号修饰的变量,因此从理论上讲,单引号是比较快的。

    3、heredoc与nowdoc

    3.1、heredoc

    heredoc可以理解为不使用双引号来定义字符串,但效果与使用双引号一致。【此时双引号相当于普通字符】

    语法要求:

    1、开始标记和结束标记使用相同的字符串,通常以大写字母来写。

    2、开始标记后不能出现空格或多余的字符。

    3、结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号 。

    4、位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。

    eg.

     <?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;


    从打印的结果我们可以看出:此时双引号仅仅只是一个普通字符;其他的效果和双引号的字符串效果一致。

    3.2、nowdoc

    同理,nowdoc是不使用单引号来定义,但效果相当于使用单引号来定义的字符串。【此时单引号相当于普通字符】

    语法同heredoc

    eg.

     <?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定义字符串的四种方式详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

    相关推荐:

    php长字符串定义方法

    PHP中的字符串定义——Heredoc结构形式

    Python 字符串定义

    以上就是通过PHP来定义字符串的四种方式的详解的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php 字符串 定义
    上一篇:php变量的原理分析 下一篇:php代码优化小知识分享
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 整理总结nginx、php-fpm和mysql等的权限划分• 哪位高手有php手册 • 小弟我有关于Linux的有关问题 • 求PHP获取数据表字段值的完整代码解决方法 • 最近有点迷惘,还想请大家指导上学习的方法
    1/1

    PHP中文网