PHP - 字符串
字符串是字符序列,例如 'PHP支持字符串操作'。PHP 中的字符串,表示字节数组和表示缓冲区长度的整数。在 PHP 中,字符等同于字节。这意味着 PHP 仅支持 256 个字符集,因此不提供本机 Unicode 支持。
PHP 支持单引号和双引号字符串格式。表示形式 'this is a simple string' 和 “this is a simple string” 都是有效的。PHP 还具有字符串数据类型的 Heredoc 和 Newdoc 表示形式。
单引号字符串
用单引号括起来的字符序列(字符 ')是一个字符串。
$str = '这是一个简单的字符串';
例
如果要包含文字单引号,请使用反斜杠 (\) 对其进行转义。
<?php
$str = 'This is a \'simple\' string';
echo $str;
?>
它将为您提供以下输出 -
例
要指定文字反斜杠,请将其加倍 (\\)。
<?php
$str = 'The command C:\\*.* will delete all files.';
echo $str;
?>
这是它的输出 -
例
诸如 “\r” 或 “\n” 之类的转义序列将被按字面处理,并且不会解释它们的特殊含义。如果变量出现在单引号字符串中,它们也不会被扩展。
<?php
$str = 'This will not expand: \n a newline';
echo $str . PHP_EOL;
$x=100;
$str = 'Value of x = $x';
echo $str;
?>
它将产生以下输出 -
Value of x = $x
双引号字符串
用双引号 (“ ”) 括起来的字符序列是另一种字符串表示形式。
$str = "this is a simple string";
单引号和双引号字符串是等效的,除了它们对转义序列的处理。PHP 将解释特殊字符的某些转义序列。例如,“\r” 和 “\n”。
序列 | 意思 |
---|---|
\n | 换行符(LF 或 ASCII 中的 0x0A (10))) |
\r | 回车(ASCII 中的 CR 或 0x0D (13))) |
\t | 水平制表符(ASCII 中的 HT 或 0x09 (9))) |
\v | 垂直制表符(ASCII 中的 VT 或 0x0B (11))) |
\e | 转义(ESC 或 ASCII 中的 0x1B (27)) |
\f | 换页符(ASCII 格式为 FF 或 0x0C (12)) |
\\ | 反斜线 |
\$ | 美元符号 |
\" | 双引号 |
PHP 转义八进制和十六进制字符
PHP 支持将八进制和十六进制数转义为它的 ASCII 字符。例如,P 的 ASCII 字符为十进制 80。十进制中的 80 到八进制是 120。同样,十进制到十六进制的 80 是 50。
要转义八进制字符,请为其添加前缀 “\”;要转义十六进制字符,请为其添加前缀 “\x”。
<?php
$str = "\120\110\120";
echo "PHP with Octal: ". $str;
echo PHP_EOL;
$str = "\x50\x48\x50";
echo "PHP with Hexadecimal: ". $str;
?>
检查输出 -
PHP with Hexadecimal: PHP
与单引号字符串一样,转义任何其他字符也会导致打印反斜杠。双引号字符串最重要的特征是变量名称将被扩展。
例PHP 中的双引号字符串扩展了变量名称(PHP 变量以 $ 符号为前缀)。要在 PHP 字符串中实际表示 “$” 符号,请以 “\” 字符为前缀对其进行转义。
<?php
$price = 200;
echo "Price = \$ $price";
?>
您将获得以下输出 -
字符串连接运算符
为了将两个字符串变量连接在一起,PHP 使用点 (.) 运算符 −
<?php
$string1="Hello World";
$string2="1234";
echo $string1 . " " . $string2;
?>
在这里,您将获得以下输出 -
在上面的示例中,我们使用了 concatenation 运算符两次。这是因为我们必须插入第三个字符串。在两个字符串变量之间,我们添加了一个带有单个字符的字符串,即一个空格,以分隔两个变量。
PHP 的标准库包括许多用于字符串处理的函数。它们可以在 PHP 的官方文档 (https://www.php.net/manual/en/ref.strings.php) 中找到。
strlen() 函数
strlen() 函数用于查找字符串的长度。
例让我们找到字符串 “Hello world!” 的长度 −
<?php
echo strlen("Hello world!");
?>
它将产生以下输出 -
字符串的长度通常用于循环或其他函数中,此时知道字符串何时结束很重要(也就是说,在循环中,我们希望在字符串中的最后一个字符之后停止循环)。
strpos() 函数
strpos() 函数用于搜索字符串或字符串中的字符。
- 如果在字符串中找到匹配项,此函数将返回第一个匹配项的位置。
- 如果未找到匹配项,它将返回 FALSE。
让我们看看我们是否能在字符串中找到字符串 “world” -
<?php
echo strpos("Hello world!","world");
?>
它将产生以下输出 -
如你所见,字符串 “world” 在我们的字符串中的位置是 “6”。它是 “6” 而不是 “7” 的原因是字符串中的第一个位置是 “0”,而不是 “1”。