使用字符串

在现实生活中处理字符串非常简单。像检查这个字符串是否包含这个字符或告诉我这个字符出现了多少次这样的操作都非常容易执行。但在编程时,字符串是字符的串联,搜索时无法一眼看到。相反,您必须一个一个地查找,并跟踪内容。在这种情况下,那些非常简单的操作就不再那么容易了。

幸运的是,PHP 提供了一整套预定义函数,可以帮助您与字符串进行交互。您可以在 http://php.net/manual/en/ref.strings.php 中找到整个函数列表,但我们只介绍最常用的函数。下面我们来看几个例子:

<?php

$text = ' How can a clam cram in a clean cream can? ';

echo strlen($text); // 45
$text = trim($text);
echo $text; // How can a clam cram in a clean cream can?
echo strtoupper($text); // HOW CAN A CLAM CRAM IN A CLEAN CREAM CAN?
echo strtolower($text); // how can a clam cram in a clean cream can?
$text = str_replace('can', 'could', $text);
echo $text; // How could a clam cram in a clean cream could?
echo substr($text, 2, 6); // w coul
var_dump(strpos($text, 'can')); // false
var_dump(strpos($text, 'could')); // 4

在前面的长代码中,我们正在使用具有不同功能的字符串:

  • strlen:此函数返回字符串包含的字符数。

  • trim:该函数在返回字符串时,会删除字符串左侧和右侧的所有空格。

  • strtoupperstrtolower:该函数分别返回字符串中所有字符的大写或小写字母。

  • str_replace:此函数用替换字符串替换给定字符串的所有出现位置。

  • substr:该函数提取参数指定位置之间的字符串,第一个字符位于位置 0。

  • strpos:该函数显示给定字符串首次出现的位置。如果找不到字符串,则返回 false

此外,还有一个用于字符串的运算符(.),它可以连接两个字符串(或两个尽可能转换为字符串的变量)。使用它非常简单:在下面的示例中,最后一条语句将连接所有字符串和变量,组成句子 I am Hiro Nakamura!

<?php
$firstname = 'Hiro';
$surname = 'Nakamura';
echo 'I am ' . $firstname . ' ' . $surname . '!';

关于字符串,还有一点需要注意,那就是字符串的表示方法。到目前为止,我们都是用单引号括字符串,但也可以用双引号括字符串。不同之处在于,在单引号中,字符串的表示方式完全相同,但在双引号中,在显示最终结果之前会应用一些规则。双引号对两个元素的处理方式与单引号不同:转义字符和变量扩展。

  • 转义字符:这些字符是无法简单表示的特殊字符。新行或制表符就是转义字符的例子。为了表示这些字符,我们使用转义序列,即一个反斜线 (\),后面跟一些其他字符。例如,\n 表示换行,\t 表示制表符。

  • 变量扩展:它允许在字符串中包含变量引用,PHP 会用其当前值替换它们。还必须包括 $ 符号。

看一下下面的例子:

<?php
$firstname = 'Hiro';
$surname = 'Nakamura';
echo "My name is $firstname $surname.\nI am a master of time and
space. \"Yatta!\"";

前面的代码将在浏览器中打印以下内容:

My name is Hiro Nakamura.
I am a master of time and space. "Yatta!"

在这里,\n 插入了一行新内容。\" 添加了双引号(也需要转义,因为 PHP 会理解你想结束字符串),变量 $firstname$surname 被替换为它们的值。