如何在PHP中使用字符串

来自菜鸟教程
跳转至:导航、​搜索

作者选择 Open Sourcing Mental Illness Ltd 作为 Write for DOnations 计划的一部分接受捐赠。

介绍

字符串是一个或多个字符的序列,可能由字母、数字或符号组成。 所有书面交流都是由字符串组成的。 因此,它们是任何编程语言的基础。

在本文中,您将学习如何创建和查看字符串的输出,如何使用转义序列,如何连接字符串,如何将字符串存储在变量中,以及 PHP 中字符串中使用引号、撇号和换行符的规则.

单引号和双引号字符串

您可以在 PHP 中通过将一系列字符括在单引号或双引号中来创建字符串。 PHP 实际上会以不同的方式解释以下字符串:

'This is a string in single quotes.'
"This is a string in double quotes."

在输出之前,双引号字符串将评估和解析字符串中的任何变量或转义序列。 单引号字符串将完全按照指定输出每个字符。 单引号字符串的例外是单引号(需要时加上反斜杠)。

如果你要在 PHP 中使用 echo 这个字符串:

'Sammy says: "This string\'s in single quotes." It required a backslash (\) before the apostrophes (\\\'), but do not use (\") with the double quotes.'

它将返回此输出:

OutputSammy says: "This string's in single quotes." It required a backslash (\) before the apostrophes (\'), but do not use (\") with the double quotes.

如果在单引号字符串中的撇号前不包含反斜杠,PHP 将在该点结束字符串,这将导致错误。 由于您使用单引号来创建我们的字符串,因此您可以在其中包含双引号作为 PHP 输出的最终字符串的一部分。

如果要渲染 \' 序列,则必须使用 三个 反斜杠(\\\')。 首先 \\ 渲染反斜杠本身,然后 \' 渲染撇号。 序列 \" 完全按照指定的方式呈现。

"Sammy says: \"This string's in double quotes.\" It requires a backslash (\) before the double quotes (\\\"), but you MUST NOT add a backslash before the apostrophe (\')."
OutputSammy says: "This string's in double quotes." It requires a backslash (\) before the double quotes (\"), but you MUST NOT add a backslash before the apostrophe (\').

与单引号字符串一样,如果双引号字符串中的双引号之前没有包含反斜杠,PHP 将在该点结束字符串,这将导致错误。 由于双引号字符串不是以单引号结尾的,因此您将撇号直接添加到双引号字符串。 双引号字符串将输出 \' 并带有与撇号一起使用的单反斜杠或双反斜杠。

要输出 \" 序列,必须使用 三个 反斜杠。 首先 \\ 渲染反斜杠本身,然后 \" 渲染双引号。 序列 \' 完全按照指定的方式呈现。

\ 被称为转义字符。 结合一个次要字符,组成一个转义序列。 现在您已经了解了字符串,让我们回顾一下转义序列。

转义序列

转义序列 告诉程序停止正常的操作过程并以不同的方式评估以下字符。

在 PHP 中,转义序列以反斜杠 \ 开头。 转义序列适用于双引号字符串。 单引号字符串仅对单引号或反斜杠使用转义序列。

以下是双引号字符串的一些常见转义序列:

  • \" 双引号
  • \\ 表示反斜杠
  • \$ 渲染美元符号而不是扩展变量
  • \n 换行
  • \t 用于选项卡

以下是如何在字符串中使用这些序列的示例:

"\"What type of \$ do sharks use?\"\n\tSand dollars!"
Output"What type of $ do sharks use?"
    Sand dollars!

使用转义序列使我们能够在包含这些特殊字符的同时构建所需的任何字符串。

创建和查看字符串的输出

双引号字符串最重要的特性是变量名将被扩展,从而为您提供变量的值。 可以使用变量来代替字符串,也可以直接使用字符串。 通过调用 echo 函数输出字符串:

$my_name = "Sammy";
echo 'Name is specified using the variable $my_name.';
echo "\n"; // escape sequence for newline character
echo "Hello, my name is $my_name. It's stored in the variable \$my_name.";

$my_name 变量在第一行创建。 在第二行,echo 函数用于输出单引号中的字符串。 在这个单引号字符串中使用 $my_name 变量会完全按照它们的书写方式显示字符,因此我们将看到变量名称而不是它的值。

在第四行,我们再次使用了 echo 函数,但这次我们使用了双引号。 这次变量被扩展以显示第一句中的值。 在下一句中,在 $ 之前有一个 \ 来明确告诉字符串显示 $ 字符而不是扩展变量。

OutputName is specified using the variable $my_name.
Hello, my name is Sammy. It's stored in the variable $my_name.

注意: 当字符串计算不是问题时,您可以选择使用单引号或双引号,但无论您决定使用哪种方式,都应该在程序中保持一致。 单引号可能 稍微快一些


了解了如何创建和查看字符串的输出后,让我们继续了解如何操作字符串。

字符串连接

Concatenation 意味着将字符串端到端连接在一起以构建一个新字符串。 在 PHP 中,连接字符串有两种主要方法。

第一种是在双引号字符串中包含一个字符串变量。 这在上一步和以下步骤中显示:

$answer = "Chews wisely.";
echo "What do sharks do when they have a big choice to make? $answer";

运行此代码将组合字符串和 $answer 变量,该变量设置为 Chews wisely.

OutputWhat do sharks do when they have a big choice to make? Chews wisely.

连接字符串的第二种方法是使用 . 运算符。

让我们通过 echo 语句将字符串 "Sammy""Shark" 组合在一起:

echo "Sammy" . "Shark";

此代码使用 . 运算符将 "Sammy" 字符串和 "Shark" 字符串组合在一起,中间没有空格。

OutputSammyShark

如果您想在两个字符串之间使用空格,则必须在字符串中包含空格,例如在单词 Sammy 之后:

echo "Sammy " . "Shark";
OutputSammy Shark

您不能使用连接将字符串与整数组合:

echo "Sammy" . 27;

这将产生一个错误:

OutputParse error: syntax error, unexpected '.27' (T_DNUMBER), expecting ';' or ',' in php shell code on line 1

如果您将 "27" 放在引号内,它将评估为字符串。

PHP是一种松散类型语言,这意味着它会尝试根据请求转换它给出的数据。 如果将变量设置为 27,当与字符串串联使用时,PHP 会将变量解析为字符串:

$my_int = 27;
echo "Sammy" . $my_int;
OutputSammy27

您已经介绍了连接或组合字符串的两种主要方法。 有时您可能想要完全替换或添加字符串。 接下来,让我们探讨一下 PHP 如何允许您覆盖或更新字符串。

更新字符串

PHP 中的普通变量是 mutable,这意味着它们可以被更改或覆盖。 让我们探讨一下当您更改 $my_name 变量的值时会发生什么:

$my_name = "Sammy";
echo $my_name . "\n";
$my_name = "Shark";
echo $my_name;
OutputSammy
Shark

首先,将变量设置为 "Sammy" 并使用 echo 显示。 然后将其设置为"Shark",覆盖变量,这样当第二次调用echo时,它会显示"Shark"的新值。

您可以使用连接赋值运算符 .= 追加到字符串的末尾,而不是覆盖变量:

$my_name = "Sammy";
$my_name .= " Shark";
echo $my_name;

首先,您将 $my_name 变量设置为 "Sammy",然后使用 .= 运算符将 " Shark" 添加到它的末尾。 $my_name 的新值为 Sammy Shark

OutputSammy Shark

要将 前置 到字符串的开头,您将在使用原始字符串时覆盖:

$my_name = "Shark";
$my_name = "Sammy " . $my_name;
echo $my_name;

这次,您首先将 $my_name 变量设置为 "Shark",然后使用 = 运算符用新字符串 [ 覆盖 $my_name 变量X154X],与 $my_name 变量的先前值相结合,在被覆盖之前是 "Shark"$my_name 的最终值为 Sammy Shark

OutputSammy Shark

覆盖、追加和前置使我们能够进行更改并构建应用程序所需的字符串。

字符串中的空格

因为 PHP 不关心空格,所以您可以在引号内放置任意数量的空格或换行符。

echo "Sammy
The           (silly)
Shark";
TEXT OutputSammy
The           (silly)
Shark

请记住,HTML 以不同的方式呈现空白。 新行需要 <br> 标签,因此即使您的源代码可能有新行,您也不会在网页上看到这些新行。 同样,无论您的代码中有多少个空格,字符之间只会显示一个空格。

HTML OutputSammy The (silly) Shark

干净且一致地使用空格是使代码更具可读性的最佳工具之一。 由于 PHP 本质上忽略了空格,因此您可以利用很多灵活性来发挥自己的优势。 集成开发环境 (IDE) 可以帮助您与代码和空白使用保持一致。

结论

能够控制我们的字符串的呈现方式对于与应用程序的最终用户进行通信至关重要。 通过更新和组合包含特殊字符的变量,您可以清晰地进行交流,同时将重复降至最低。

当您继续使用字符串时,请记住以下三个方面:

  1. 请特别注意字符串中的引号。
  2. 使用连接来组合你的字符串。
  3. 使用变量使您的字符串可重用。

如果您想了解更多关于 PHP 的信息,请查看 PHP 主题页面