💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# String 字符串 ## 字符串的常用函数列表 http://www.w3school.com.cn/php/php_ref_string.asp ## 普通字符串 * 使用两个 **单引号** 或是 **双引号** 包括起来的内容就是字符串。 * 双引号字符串中可以使用反斜杠(\)进行转义。 * 在编写代码时,一个字符串如果过长,可以在字符串里面中的任意位置处直接按回车换行继续输入。 * 双引号字符串里的内容会被进行解析,因此可以在其中使用变量。 * 单引号字符串里的内容不会被PHP解析,而是原样输出,因此其效率和双引号相比更快(**存在争议**)。 * 字符串在PHP中实际上是由字节组成的数组。 * 可以使用数组索引的方式访问字符串中单个字符(中文会有乱码) * 同上,可以使用大括号,例如`$string{0}`。 * 多个字符串拼接使用小数点,而非加号。 * 可以在双引号字符串里使用以下数据: * 变量 * 数组+索引(数组的key不可以用引号) * 对象的属性。 * {}大括号的复杂表达式 ## heredoc 结构 ~~~ $str = >>>abc 这是个奇怪的字符串 就类似于双引号的字符串 里面的内容会被解析 abc; ~~~ * 参考上面的例子,一个heredoc结构的字符串最少包含三行。 * 其中abc是结构体的标识符,可自由定义,如同变量名。 * 在结构结束时单独使用一行,以该标识符加分号表示结束。 ## nowdoc 结构 ~~~ $str = >>>'abc' 类似于单引号的字符串 里面的内容不会被解析 和heredoc结构用法几乎一样 开始标识符需要使用单引号包围 abc; ~~~ ## 字符串转换 * 一个值可以在前面加`(string)`或用`strval()`来转成字符串。 * 布尔值中`true`会被转成`string`的`"1"`,`false`则是`""`空字符串。 * 整数或浮点型会被转成带上引号的字符串。 * 数组会被转成字符串`"Array"`。 * 对象会被转成字符串`"Object"`。 * 通过`get_class()`函数可以获取对象类的名称 * 可以适当的给对象添加`__toString()`方法 * 资源resource会被转成`"Resource id #1"`这种结构的字符串。 * 其中井号后面的1是系统分配给该resource的唯一编号 * 通过`get_resource_type()`函数可以获取其类型 * null会被转成空字符串 `""`; * 当一个字符串被转换成数字时: * 如果该字符串没有包含`.`、`e`、`E`则被看做`integer`,其他情况则是被看做`float`。 * 转换时字符串的开始部分决定了它的值,如果它的开始部分是数字,则值为该数字,系统自动省略掉后面部分的其他字符,除此之外的情况,值都是 `0`。 * 如果该字符串的内容不是合法的数值时,值为 `0`。