声明字符串

  • 单引号声明
    用英文半脚的单引号,将字符串包起来
    <?php
    //声明字符串变量$dyhsm
    $dyhsm = '这是单引号声明';
    echo $dyhsm;
    ?>
  • 双引号声明
    在字符串两边加双引号。
    <?php
    //声明字符串变量$syhsm
    $syhsm = "这是双引号声明!";
    echo $syhsm;
    ?>
  • 字符界声明

1).在变量后面的等号写三个小于号(<<<)。
2).然后在<<<后面写上字符(建议英文大写字符)。
3).然后换行写上任意想写的字符
4).写完后,顶行。在行最开始处,再写上<<<后面的字符和分号。

    <?php
    $dingjie = <<<ABC
    这
       是字
    符
       界<br />
      声
    <i>明</i>
    的:<h1>代码</h1>
    ABC;
    echo $dingjie;
    ?>

双引号和单引号有什么区别?

  1. 双引号解析变量,但是单引号不解析变量。
  2. 在双引号里面插入变量,变量后面如果有英文或中文字符,它会把这个字符和变量拼接起来,视为一整个变量。一定要在变 量后面接上特殊字符,例如空格等分开。
  3. 如果在双引号里面插变量的时候,后面不想有空格,可以拿大括号将变量包起来。
  4. 双引号解析转义字符,单引号不解析转义字符。但,单引号能解析' 和\
  5. 单引号效率高于双引号,尽可能使用单引号
  6. 双号和单引号可以互插!!!双引号当中插入单引号,单引号当中插入变量,这个变量会被解析。
  7. 神奇的字符串拼接胶水——(.)点,用来拼接字符串。
  8. 我们将定界符声明字符串视为双引号一样的功能来看待。

变量解析

  • 双引号解析变量,但是单引号不解析变量
    <?php
    //声明变量$sj
    $sj = '为了苹果手机去卖肾';
    //在双引号中放$sj 然后echo 一下是什么效果呢?
    $str = "$sj 会不会显示呢?";
    //输入$str试试
    echo $str;
    ?>

通过上边的例子,双引号中间的变量够执行显示,我们将$str这个字符串两边的双引号,改为单引号试试的话

    <?php
    //声明变量$sj
    $sj = '为了苹果手机去卖肾';
    //在双引号中放$sj 然后echo 一下是什么效果呢?
    $str = '$sj 会不会显示呢?';
    //输入$str试试
    echo $str;
    ?>

则输出:$sj 会不会显示呢?

发现$sj 是直接显示出来了,而不是双引号的显示结果。

  • 概括:双引号执行变量,而单引号不执行变量。

结论:双引号需要解析变量,因此双引号的效率没有单引号高。我们如果为了更高的效率,我们通常使用单引号。

  • 在双引号里面插入变量,变量后面如果有英文或中文字符,它会把这个字符和变量拼接起来,视为一整个变量。可以在后面接上特殊字符
    <?php
    $php = '插入变量';
    //中间加了空格哟
    $str = "$php!aaaa";
    $str1 = "{$php}aaaa";
    echo $str;
    echo $str1;
    ?>

转移字符解析

  • 双引号解析转义字符,单引号不解析转义字符。但,单引号能解析' 和\
    常用转移字符:n 回车、t 缩进
    <?php
    //声明一个字符串,记住是双引号
    $string = "我发现\n 你真像\t一头居";
    echo $string;
    ?>

n在PHP我发现后面,在源代码里显示的结果是跟按了回车键一样的效果。
t在你真像和一头居中间。显示的结果是有几个空格的效果。t相当于我们在电脑上按了一个tab键效果。

同样执行一下上面的代码,但是$string双引号改为用单引号:

    <?php
    //声明一个字符串,记住是双引号
    $string = '我发现\n 你真像\t一头居';
    echo $string;
    ?>

单引号中间的t和n直接显示出来了,而没有变成按一次回车键和按一次tab键后的效果。 因此:双引号执行转义字符而单引号不执行转义字符。

  • 转义字符(反斜线的使用)
    <?php
    //要在$beizi的字符串中显示一个双引号怎么办?
    $beizi = "多于绝大多数的人出生就是杯具,但是\"我们在不断的让人生变为喜剧";
    echo $beizi;
    ?>

单引号当中要插入一个单引号显示出来的时候,也可以在单引号声明的字符串中的单引号前面加上(反斜线,转义字符),将单引号的意义(限定字符区间)去掉。

    <?php
    //要在$beizi的字符串中显示一个双引号怎么办?
    $shengyang = 'i\'m SB';
    echo  $shengyang;
    ?>
  • 双号和单引号可以互插!!!双引号当中插入单引号,单引号当中插入变量,这个变量会被解析。
    <?php
    $legend = '猛虎';
    $NoAlike = "心有'$legend',细嗅蔷薇";
    echo $NoAlike;
    ?>

拼接字符串

  • 神奇的字符串拼接胶水——(.)点,用来拼接字符串。
    <?php
    $shixi = '大学4年要好好学习<br />';
    $buran = '不然连实习的机会都没有<br />';
    $mimang = '把别人用来迷茫的时间用来<br />';
    $xuexi = '学习PHP<br />';
    //我们可以把字符串全部拼接起来。
    echo $shixi . $buran . $mimang . $xuexi;
    ?>
    因此,刚刚的问题一的代码我们可以改为:
    <?php
    $php = '真好';
    //中间加了空格哟
    $str = $php . 'aaaa';
    echo $str;
    ?>
  • 我们将定界符声明字符串视为双引号一样的功能来看待
    <?php
    $weilai = '努力才有未来';
    $mimang = '迷茫的原因是没有目标';
    $dingjie = <<<ABC
    如果
           $weilai
       非要\t在这"个滚"犊子
    前
           '$mimang'
       面<br />
      加上\n一段
    <i>距离的话</i>
    我想说:<h1>思想有多远,你就跟我滚多远</h1>
    ABC;
    echo $dingjie;
    ?>

发现weilai,mimang,t n都可以执行,双引号单引号都能显示。这就是定界符的特点。

Last modification:September 21st, 2019 at 04:19 pm
如果觉得我的文章对您有用,请随意赞赏