php取字符串长度-访问和更改字符串中的字符

文章目录

详细解释

字符串string由一系列字符组成,每个字符相当于一个字节。 这意味着 PHP 只能支持 256 个字符集。 注意:字符串大小最大可达 2GB。 PHP中string的实现方式是一个由字节加上一个表示缓冲区厚度的整数组成的字段。 没有关于如何将字节转换为字符的信息,这取决于程序员。 字符串由哪些值组成没有限制; 特别是,值为 0 的字节(“NUL 字节”)可以位于字符串中的任何位置(尽管有多个函数,在本指南中称为非“二进制字节”)“安全”,并且可以忽略之后的所有数据NUL 字节)。 字符串类型的这一特性解释了为什么 PHP 中没有单独的“字节”类型 - 而是使用了字符串。

撇号

定义字符串的最简单方法是用单个冒号(字符 ')将其括起来。 要表达单引号本身,请在其上方添加反斜杠 () 作为通配符。 要表达反斜杠本身php取字符串长度,请使用两个反斜杠 ()。 任何其他形式的反斜杠都将被视为反斜杠本身:也就是说,如果您想使用其他通配符序列,例如 r 或 n,它并不意味着任何特殊含义,只是两个字符本身。

注意:与双引号和定界符语法结构不同,单冒号字符串中的变量和特殊字符的通配符序列不会被替换。

echo 'this is a simple string';
// 可以录入多行
echo 'You can also have embedded newlines in 
strings this way as it is
okay to do';
// 输出: Arnold once said: "I'll be back"
echo 'Arnold once said: "I'll be back"';
// 输出: You deleted C:*.*?
echo 'You deleted C:\*.*?';
// 输出: You deleted C:*.*?
echo 'You deleted C:*.*?';
// 输出: This will not expand: n a newline
echo 'This will not expand: n a newline';
// 输出: Variables do not $expand $either
echo 'Variables do not $expand $either';

双引号

如果字符串用双引号 (") 括起来,PHP 将解析一些特殊字符:

与单冒号字符串一样,转义任何其他字符都会导致显示反斜杠。 用双引号定义的字符串最重要的特征是变量被解析。

Heredoc结构和Nowdoc结构

上一篇博客介绍过:链接

访问和更改字符串中的字符

注意:

①使用超过字符串宽度的下标书写,会使字符串拉长并用空格填充。 非整数类型的下标将被转换为整数。 非法下标类型会生成 E_NOTICE 级别错误。 写入带正下标的字符串会导致 E_NOTICE 级别错误,读取带正下标的字符串会返回空字符串。 写入时仅使用形参字符串的第一个字符。 对于空字符串参数,分配的值为 NULL 字符。

② PHP 字符串是内部链接的字节列表。 因此php取字符串长度,使用大括号访问或更改字符串对于多字节字符集来说是不安全的。这只应针对单字节编码(例如 ISO-8859-1)的字符串执行此操作

③ 从PHP 5.4开始,字符串下标必须是整数或者可以转换为整数的字符串,否则会发出警告。 之前的下标(例如“foo”)会默默地转换为 0。

// 取得字符串的第一个字符
$str = 'This is a test.';
$first = $str[0];
// 取得字符串的第三个字符
$third = $str[2];
// 取得字符串的最后一个字符
$str = 'This is still a test.';
$last = $str[strlen($str)-1]; 
// 修改字符串的最后一个字符
$str = 'Look at the sea';
$str[strlen($str)-1] = 'e';

转换为字符串

$x = 4.1E+6;
$y = (string)$x; //4100000

字符串转数字

$foo = 1 + "10.5";                // $foo is float (11.5)
$foo = 1 + "-1.3e3";              // $foo is float (-1299)
$foo = 1 + "bob-1.3e3";           // $foo is integer (1)
$foo = 1 + "bob3";                // $foo is integer (1)
$foo = 1 + "10 Small Pigs";       // $foo is integer (11)
$foo = 4 + "10.2 Little Piggies"; // $foo is float (14.2)
$foo = "10.0 pigs " + 1;          // $foo is float (11)
$foo = "10.0 pigs " + 1.0;        // $foo is float (11)     

字符串相关函数

参考php官网