目录
字符串,在各类编程语言中都是一个非常重要的数据类型
网页当中的图片,文字,特殊符号,HTMl标签,英文等都属于字符串
PHP字符串变量用于存储并处理文本, 在创建字符串之后,我们就可以对它进行操作。我们可以直接在函数中使用字符串,或者把它存储在变量中
字符串是一个非常要的知识,在开发中,有的使用单引号,有的使用双引号,这个是有区别的
在PHP语言中声明字符串有三种方式
- 用单引号声明
- 用双引号声明
- 用字界符声明(这个需要输入非常大段的字符串时才使用,不常用)
1.单引号声明
用英文半脚的单引号,将字符串包起来,字符串变量用于包含有字符的值
<?php //声明字符串变量$name $name = \'我是川川\'; echo $name; // 12,一个中文字符占三个字节 ?>
如果你想测试字符串的长度,可以使用PHP提供的字符串函数strlen("字符串")
,或strpos()
,此函数用于在字符串内查找一个字符或一段指定的文本。
如果在字符串中找到匹配,该函数会返回第一个匹配的字符位置。如果未找到匹配,则返回 false
<?php $name = \'我是川川\'; echo strlen($name); echo strpos(\"Hello world!\",\"world\"); // 6 ?>
2.双引号声明字符串
在字符串两边加双引号
<?php //声明字符串变量$str $str = \"书以启智,技于谋生,活出斜杠。\"; echo $str; ?>
3.字界符声明
1). 在变量后面的等号写三个小于号(<<<
)。2). 然后在<<<
后面写上字符(建议英文大写字符),如下例中的:ABC
3). 然后换行写上任意想写的字符 4). 写完后,顶行。在行最开始处,再写上<<<
后面的字符和分号。如下例中的:ABC
$weilai = \'努力才有未来\'; $mimang = \'迷茫的原因是没有目标\'; $dingjie = <<<ABC 如果 $weilai 非要\\t在这\"\" 前 \'$mimang\' 面<br /> 加上\\n一段 <i>距离的话</i> 我想说:<h1>思想有多远,你就跟我滚多远</h1> ABC; echo $dingjie
双引号与单引号有什么区别
- 双引号能解析变量,但是单引号不解析变量
- 在上引号里面插入变量,变量后面如果有英文或中文字符,它会把这个字符和变量拼接起来,视为一个整个变量,一定要在变量后面上拼接字符,例如空格等分开
- 如果在双引号里面插入变量的时候,后面不想有空格,可以拿双大括号将变量包起来
- 双引号解析转义字符,单引号不解析转义字符,但单引号能解析'和\\
- 单引号效率要高于双引号,可以尽可能使用单引号
- 双引号和单引号可以互插,双引号中插入单引号,单引号中插入变量,这个变量会被解析
- 字符串的拼接,可以用'.'号连接,拼接(常用)
1. 双引号解析变量,但是单引号不解析变量
<?php // 声明变量$name $website = \'https://coder.itclan.net\'; $str = \"$website,测试一下这个变量会不会显示\"; echo $str; ?>
上面的是能够显示出结果的,变量$website
能够被解析 双引号中间的变量够执行显示,我们将$str
这个字符串两边的双引号,改为单引号试试,再看一次执行结果,结果发现
发现$website 直接显示出来了,而不是双引号的显示结果。
通过上例,可证明:双引号执行变量,而单引号不执行变量。我们得到一个重要结论
双引号需要解析变量,因此双引号的效率没有单引号高。我们如果为了更高的效率,我们通常使用单引号
2. 在双引号里面插入变量
在双引号里面插入变量,变量后面如果有英文或中文字符,它会把这个字符和变量拼接起来,视为一整个变量。可以在后面接上特殊字符,例如空格等分开
<?php $php = \'php-开始学php\'; $str = \"$phpaaaa\"; //你会发现输出$str,什么都没有在页面中显示 echo $str; ?>
然而,我们在$str
声明的这个字符串中将$php后面接个空格再接aaaa,代码如下
<?php $php = \'php-开始学php\'; $str = \"$php aaaa\"; //在$php后面添加一个空格,页面却正常显示了的 echo $str; ?>
你在很多项目里,有的会看到空格的,如果你不小心删除了空格,那么就会不显示
如果你不想要在后面不想要有空格,可以用双大括号将变量包裹起来的,如下代码所示
<?php $php = \'php-开始学php\'; $str = \"{$php}aaaa\"; //在$php后面添加一个空格,页面却正常显示了的 echo $str; ?>
3. 双引号解析转义字符,单引号不解析转义字符
双引号解析转义字符,单引号不解析转义字符,但单引号能解析`,和\\
比如:
<?php // 声明一个字符串,记住是双引号 $string = \"好好学习\\n,天天向上\\t,相信自己\"; echo $string; ?>
从浏览器输出结果当中可以看出是有效果的
如果换成单引号,那么情况就变了的
<?php // 声明一个字符串,记住是双引号 $string = \'好好学习\\n,天天向上\\t,相信自己\'; echo $string; ?>
你会发现,单引号的\\t,\\n直接就显示出来了,而没有变成一次回车键和按一次的tab键后的效果
也就是,双引号执行转义字符而单引号不执行转义字符
4.转义字符\\(反斜线的使用)
如果我们声明一个变量,我们想要在name声明的双引号中间加上一个双引号显示输出怎么办
<?php //要在$name的字符串中显示一个双引号怎么办? $name = \"多于绝大多数的人出生就是杯具,但是\"我们在不断的让人生变为喜剧\"; echo $name; ?>
上述代码会报错,双引号中间还有一个双引号。也就是意味着字符串声明提前结束了
我们需要将双引号原有的意义去掉。再双引号前面加上一个“`(反斜线,计算机的专业名词叫转义字符),就可以了
<?php //要在$name的字符串中显示一个双引号怎么办? $name = \"多于绝大多数的人出生就是杯具,但是\\\"我们在不断的让人生变为喜剧\"; echo $name; ?>
再执行一下上面的代码,发现不再报错了。同理可推,单引号当中要插入一个单引号显示出来的时候,也可以在单引号声明的字符串中的单引号前面加上(反斜线,转义字符),将单引号的意义(限定字符区间)去掉
5. 双号和单引号可以互插
双号和单引号可以互插,双引号当中插入单引号,单引号当中插入变量,这个变量会被解析
<?php $legend = \'猛虎\'; $NoAlike = \"心有\'$legend\',细嗅蔷薇\"; echo $NoAlike; ?>
需要注意的是,双引号内可以,插入单引号,中有变量,可以被解析,反过来则不行,会报错
6. 字符串可以用(.)来拼接
如下代码所示
<?php $php = \'itclanCoder\'; //中间加了空格 $str = \"{$php}aaaa\"; echo $str; ?>
双引号能够解析变量,有一个问题:
效率没有纯单引号的高
那么问题1:我想改为效率最高的方式应该怎么办?
问题2:我有多个字符串,要拼接在一声怎么办?
那我们需要使用到神奇的胶水:(.
)点,用来拼接字符串
<?php $shixi = \'大学4年要好好学习<br />\'; $buran = \'不然连实习的机会都没有<br />\'; $mimang = \'把别人用来迷茫的时间用来学习<br />\'; $xuexi = \'学习PHP<br />\'; //我们可以把字符串全部拼接起来。 echo $shixi . $buran . $mimang . $xuexi; ?>
上面的代码可以更改为
<?php $php = \'itclanCoder\'; //中间加了空格 $str = $php . \'aaaa\'; echo $str; ?>
以上就是关于php当中双引号与单引号的使用,在面试的时候,有时候也会问到
暂无评论内容