(005)系统学习PHP之字符串

字 符串

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 网络

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180217G0DNFS00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券