今天接着上一篇推文,跟大家详细讲一下PHP的字符串。
1. 定义大段字符串
之前跟大家讲过字符串的定义是用英文状态下的单引号与双引号,除此之外,PHP还提供了heredoc和nowdoc给你定义大段的字符串。
heredoc对应大段的双引号字符串,要求非常严格,开头前后都不可以由空格,中间也不能由注释,前后保持一致,大小写都可以,举例使用如下:
运行结果如下:
nowdoc则是对应大段的单引号字符串:
运行结果如下:
2. 单双引号的区别
单双引号字符串的区别主要体现在:转义,变量解析和速度。
转义字符是指在编程中,表示有特殊意义的字符,比如表示换行。常用转义字符有如下字符:
\n:换行
\r:回车
\t:水平制表符,一个缩进
\v:垂直制表符
$:代表$本身
\:代表反斜线本身
\’:单引号本身
\”:代表双引号本身
而转义,其实就是将字符转换成其代表的字符。在转义上,双引号相对于单引号转义较多,举例如下:
运行结果如下:
可以看出,单引号只能解析与‘,其他的都是原样输出。
再来看看双引号:
运行结果如下:
可以看出,双引号就可以转义所有的字符。
对变量的解析方面,双引号可以解析变量的值,单引号不解析。
运行结果如下:
需要注意的是,当我们用双引号包住字符串的时候,如果不是变量,不能出现$,后面不能跟合法的变量名,举例如下:
运行就会报错了,变量只输出$前面的字符:
而单引号则不会报错:
解析速度方面,因为单引号不必考虑过多的转义以及变量解析,所以速度上比双引号更快,所以正常情况下使用单引号会比较多。
3. 字符串常用函数
由于字符串在web开发中十分重要,经常需要使用到,因此作为字符串函数,必须熟练掌握。下面列举一些常用的字符串函数给大家。
第一种是计算字符串长度的函数,先讲一个,strlen,用于获取字符串长度 (计算的是字节数),语法如下:
int strlen ( string $string )
举例使用如下:
第二个是mb_strlen,也是用于获取字符串的长度 ,不过计算的是字符数。记住第二个参数是编码。
第二种是查找字符串位置的函数。首先是strpos,用于查找字符串首次出现的位置,计算机中,位置从0记数。举例使用如下:
需要注意的是。此函数可能返回布尔值 FALSE,但也可能返回等同于 FALSE 的非布尔值,因为字符串位置是从0开始,而不是从1开始的。举例如下:
运行结果如下:
由于全等于,也就是三个等于号,所以才判断为存在。单纯的等于是会直接将0视为FALSE的。
第三种是替换字符串。第一个是str_replace — 子字符串替换,使用如下:
第二个是strtr — 转换指定字符。第二个参数为数组,键是待替换的,值是替换后的(键与值的知识之后数组会更大家再讲解,可以理解为物品代号与物品):
运行如下:
第四种是截取字符串函数,用的是substr — 返回字符串的子串,语法为:
substr('大字符串','从哪个位置开始截取',[截取几个])
有两种用法,第一种是正向截取,举例如下:
运行结果如下:
第二种是反向截取:
运行结果如下:
需要注意的是,如果第三个参数是负数,代表结束位置,从后往前数。
第五种是拆分字符串函数。使用的是explode — 使用一个字符串分割另一个字符串,返回一个数组。
第二个strpos 字符串位置,substr 截取字符串。
运行结果如下:
以上便是字符串的知识,大家私下自行熟悉,下篇推文跟大家讲一下另一个数据类型——数组。
领取专属 10元无门槛券
私享最新 技术干货