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;
?>

它将为您提供以下输出 -

This is a 'simple' string

要指定文字反斜杠,请将其加倍 (\\)。


<?php
	 	$str = 'The command C:\\*.* will delete all files.';
	 	echo $str;
?>

这是它的输出 -

The command C:\*.* will delete all files.

诸如 “\r” 或 “\n” 之类的转义序列将被按字面处理,并且不会解释它们的特殊含义。如果变量出现在单引号字符串中,它们也不会被扩展。


<?php
	 	$str = 'This will not expand: \n a newline';
	 	echo $str . PHP_EOL;
	 	$x=100;
	 	$str = 'Value of x = $x';
	 	echo $str;
?>

它将产生以下输出 -

This will not expand: \n a newline
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 Octal: PHP
PHP with Hexadecimal: PHP

与单引号字符串一样,转义任何其他字符也会导致打印反斜杠。双引号字符串最重要的特征是变量名称将被扩展。

PHP 中的双引号字符串扩展了变量名称(PHP 变量以 $ 符号为前缀)。要在 PHP 字符串中实际表示 “$” 符号,请以 “\” 字符为前缀对其进行转义。


<?php
	 	$price = 200;
	 	echo "Price = \$ $price";
?>

您将获得以下输出 -

Price = $ 200

字符串连接运算符

为了将两个字符串变量连接在一起,PHP 使用点 (.) 运算符 −


<?php
	 	$string1="Hello World";
	 	$string2="1234";

	 	echo $string1 . " " . $string2;
?>

在这里,您将获得以下输出 -

Hello World 1234

在上面的示例中,我们使用了 concatenation 运算符两次。这是因为我们必须插入第三个字符串。在两个字符串变量之间,我们添加了一个带有单个字符的字符串,即一个空格,以分隔两个变量。

PHP 的标准库包括许多用于字符串处理的函数。它们可以在 PHP 的官方文档 (https://www.php.net/manual/en/ref.strings.php) 中找到。

strlen() 函数

strlen() 函数用于查找字符串的长度。

让我们找到字符串 “Hello world!” 的长度 −


<?php
	 	echo strlen("Hello world!");
?>

它将产生以下输出 -

12

字符串的长度通常用于循环或其他函数中,此时知道字符串何时结束很重要(也就是说,在循环中,我们希望在字符串中的最后一个字符之后停止循环)。

strpos() 函数

strpos() 函数用于搜索字符串或字符串中的字符。

  • 如果在字符串中找到匹配项,此函数将返回第一个匹配项的位置。
  • 如果未找到匹配项,它将返回 FALSE。

让我们看看我们是否能在字符串中找到字符串 “world” -


<?php
	 	echo strpos("Hello world!","world");
?>

它将产生以下输出 -

6

如你所见,字符串 “world” 在我们的字符串中的位置是 “6”。它是 “6” 而不是 “7” 的原因是字符串中的第一个位置是 “0”,而不是 “1”。