字 符串
String of the PHP
字符串是指一连串不中断的字符,其中每个字符等同于一个字节。所以 PHP 只能支持 256 的字符集, 但其最大可以达到 2GB。
字符串
的
表达方式
一个字符串可以用 4 种方式表达
1
单引号
定义一个字符串的最简单的方法是用单引号把它包围起来(字符')。要表达一个单引号自身,需在它的前面加个反斜线(\)来转义。要表达一个反斜线自身,则用两个反斜线(\\)。
2
双引号
如果字符串是包围在双引号(")中, PHP 将对一些特殊的字符进行解析。
3
Heredoc结构
第三种表达字符串的方法是用 heredoc 句法结构:
4
Nowdoc结构
一个 nowdoc 结构也用和 heredocs 结构一样的标记
区别
双引号是解析变量的,单引号不解析变量,因此单引号的效率高于双引号;
双引号解析所有的转义符,单引号只解析"\"和“'”;
heredoc 结构类似于双引号字符串,Nowdoc 结构是类似于单引号字符串的。
关于变量解析
当字符串用双引号或 heredoc 结构定义时,其中的变量将会被解析。
这里共有两种语法规则:一种简单规则,一种复杂规则。简单的语法规则是最常用和最方便的,它可以用最少的代码在一个 string 中嵌入一个变量,一个 array 的值,或一个 object 的属性。复杂规则语法的显著标记是用花括号包围的表达式。
简单规则
当 PHP 解析器遇到一个美元符号($)时,它会和其它很多解析器一样,去组合尽量多的标识以形成一个合法的变量名。
以上例程会输出:
类似的,一个 array 索引或一个 object 属性也可被解析。数组索引要用方括号(])来表示索引结束的边际,对象属性则是和上述的变量规则相同。
如果想要表达更复杂的结构,请用复杂语法。
复杂(花括号)语法
复杂语法不是因为其语法复杂而得名,而是因为它可以使用复杂的表达式。即使用花括号来明确变量名的界线。
任何具有 string 表达的标量变量,数组单元或对象属性都可使用此语法。只需简单地像在 string 以外的地方那样写出表达式,然后用花括号{和}把它括起来即可。由于{无法被转义,只有$紧挨着{时才会被识别。可以用{\$来表达{$。
#1 $必须紧挨{
#2 表示类属性及多维数组
#3 存取和修改字符串中的字符
删除操作:首先找到这个字符,然后赋值给它一个空字符,就相当于删除。注意其字符的长度没有变。
类型转换
1自动转换
1)数值型转换成字符串:数值本身
2)布尔型转换成字符串:
true:1,false:空字符串,null:空字符串
3)数组转换成字符串:
array,//Notice: Array to string conversion
4)资源转换成字符串:Resource id #数字 资源句柄
5)对象不能直接转换成字符串
2强制转换
1
暂时性转换:一个值可以通过在其前面加上(string)或用 strval() 函数来转变成字符串。
2
永久性转换:使用 settype() 函数设置变量的类型。
字符串转换为其他类型
字符串与数字:取字符串开头数字,如果开头不是合法数字,转换为0;
字符串与布尔:空、0、0.0、fause、null转换为假,其他为真;
有用的函数和运算符
字符串可以用 '.'(点)运算符连接起来,注意 '+'(加号)运算符没有这个功能。 事实上,有两个字符串(string)运算符。第一个是连接运算符(“.”),它返回其左右参数连接后的字符串。第二个是连接赋值运算符(“.=”),它将右边参数附加到左边的参数之后。
字符串函数
字符串有上百个函数,我们不可能全部记住;
在最后给大家分享一个思维导图字符串函数的总结:
文/编辑 by atong
图片 by 网络
领取专属 10元无门槛券
私享最新 技术干货