如何在 PHP 中处理字符串

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

介绍

一个字符串是由一个或多个字符组成的序列,可以由字母,数字或符号组成,所有书面通信都由字符串组成,因此,它们对任何编程语言都是基本的。

在本文中,您将学习如何创建和查看字符串的输出,如何使用逃避序列,如何连接字符串,如何在变量中存储字符串,以及在PHP中使用字符串中的引用,断言和新闻线的规则。

单和双引用字符串

您可以通过在单个或双重引文中包含字符序列来创建一个字符串。

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

在输出之前,双引用字符串将评估和解析任何变量或逃离字符串的序列。

如果你要在PHP中响应这个字符串:

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

它会返回这个输出:

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

如果您在单引文字符串中不包含反向引文,PHP将在此时结束该字符串,这将导致错误. 由于您正在使用单引文来创建我们的字符串,您可以将其中的双引文列入PHP输出的最终字符串中。

如果你想渲染\序列,你必须使用 三个的反射(\')。 首先\\来渲染反射本身,然后\来渲染反射。

1"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 (\')."
1[secondary_label Output]
2Sammy 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 (\').

与单引用字符串一样,如果在双引用字符串中的双引用字符串之前不包含一个 backslash,PHP将在该点结束这个字符串,这将导致错误。由于双引用字符串没有以单引用字符串结束,你会将apostroph直接添加到双引用字符串中。

要输出\序列,你必须使用 三个背影. 首先是\\来渲染背影本身,然后是\来渲染双引数。

\被称为逃跑字符. 与次要字符相结合,它构成一个 _escape 序列。

逃避序列

一个 escape sequence告诉程序停止正常操作程序,并以不同的方式评估下面的字符。

在PHP中,一个逃避序列从一个backslash开始。 逃避序列适用于双引用字符串. 单引用字符串只使用单引用字符串或回引字符串的逃避序列。

以下是为双引用字符串的一些常见的逃脱序列:

  • `" 為雙重引用
  • \\ 為 backslash
  • \$ 為返回美元符號而不是擴展變數
  • \n 為新行
  • \t 為 tab

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

1"\"What type of \$ do sharks use?\"\n\tSand dollars!"
1[secondary_label Output]
2"What type of $ do sharks use?"
3    Sand dollars!

使用逃跑序列使我们能够构建任何需要的字符串,同时包括这些特殊字符。

创建和查看 string 的输出

双引用字符串的最重要特征是,变量名将被扩展,为您提供变量的值。您可以使用变量来代表字符串或直接使用字符串。

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

在第一行创建了$my_name变量,在第二行使用echo函数来输出单个引文中的字符串。

在第四行中,我们再次使用回声函数,但我们这次使用双引用。这次变量被扩展到显示第一句话中的值。

1[secondary_label Output]
2Name is specified using the variable $my_name.
3Hello, my name is Sammy. It's stored in the variable $my_name.

<$>[注] **注:**当字符串评估不是一个问题时,你可以选择使用单个引文或双重引文,但无论你决定什么,你应该在程序中保持一致。

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

紧紧连接

concatenation 是指将字符串连接在一起,端到端,以构建一个新的字符串。

第一个是将字符串变量包含在一个双引数字符串中,这在上一步和下面的步骤中显示了:

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

运行此代码将连接字符串和$answer变量,该变量设置为Chews wisely:

1[secondary_label Output]
2What do sharks do when they have a big choice to make? Chews wisely.

连接字符串的第二种方法是使用 . 操作员。

让我们将字符串``SammyShark结合起来,并通过一个回声`声明连接:

1echo "Sammy" . "Shark";

此代码使用 . 运算符来组合 "Sammy" 字符串和 "Shark"字符串,之间没有空间。

1[secondary_label Output]
2SammyShark

如果你想要两个字符串之间的白空间,你必须在字符串中包含白空间,例如Sammy字之后:

1echo "Sammy " . "Shark";
1[secondary_label Output]
2Sammy Shark

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

1echo "Sammy" . 27;

这会导致一个错误:

1[secondary_label Output]
2Parse error: syntax error, unexpected '.27' (T_DNUMBER), expecting ';' or ',' in php shell code on line 1

如果你把27放在引文中,它将作为一个字符串进行评估。

PHP 是一个 loosely typed language,这意味着它将根据请求尝试转换所提供的数据. 如果您将变量设置为 27,当它与字符串相连时,PHP 将将变量解析为字符串:

1$my_int = 27;
2echo "Sammy" . $my_int;
1[secondary_label Output]
2Sammy27

你已经涵盖了连接或组合字符串的两种主要方法,有时你可能想要完全更换或添加字符串,接下来,让我们探索PHP如何允许你重写或更新字符串。

更新一个 String

PHP 中的正常变量是 mutable,这意味着它们可以被更改或重写,让我们看看当您更改 $my_name 变量值时会发生什么:

1$my_name = "Sammy";
2echo $my_name . "\n";
3$my_name = "Shark";
4echo $my_name;
1[secondary_label Output]
2Sammy
3Shark

首先,变量被设置为Sammy并使用Echo显示,然后被设置为Shark,重写变量,以便当Echo被称为第二次时,它会显示Shark的新值。

不是重写变量,您可以使用连接的分配运算符 .= 来附加到字符串的末尾:

1$my_name = "Sammy";
2$my_name .= " Shark";
3echo $my_name;

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

1[secondary_label Output]
2Sammy Shark

prepend 到一个字符串的开始,你会在使用原始字符串时重写:

1$my_name = "Shark";
2$my_name = "Sammy " . $my_name;
3echo $my_name;

这一次,您首先将$my_name变量设置为Shark,然后使用=运算符将$my_name变量与新的字符串Sammy相结合,加上以前的$my_name变量值,在重叠之前是Shark

1[secondary_label Output]
2Sammy Shark

重写、附件和预写使我们能够进行更改并构建我们应用程序所需的字符串。

Whitespace 在 字符串

因为PHP不关心白空间,所以你可以在你的引用中放置你想要的多少间隙或行间隙。

1echo "Sammy
2The           (silly)
3Shark";
1[secondary_label TEXT Output]
2Sammy
3The           (silly)
4Shark

请记住,HTML以不同的方式渲染白色空间。新行需要一个<br>标签,所以即使你的源头可能有新行,你也不会看到这些新行在网页上显示。

1[secondary_label HTML Output]
2Sammy The (silly) Shark

清洁和一致地使用WhiteSpace是使代码更易于阅读的最佳工具之一,因为PHP基本上忽略了WhiteSpace,所以您可以使用大量的灵活性,以获得您的优势。

结论

能够控制我们的字符串的渲染方式对于与应用程序的最终用户进行通信至关重要。

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

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

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

Published At
Categories with 技术
Tagged with
comments powered by Disqus