1.5 介绍字符串

我将深入讨论的第一种变量类型是字符串。字符串只是一块用引号括起来的字符:字母、数字、空格、标点符号,等等。下面列出的全都是字符串:

  • ‘Tobias’

  • “In watermelon sugar”

  • ‘100’

  • ‘August 2, 2011’

为了建立一个字符串变量,可以给一个有效的变量名赋予一个字符串值:

$first_name = 'Tobias';
$today = 'August 2, 2011';

在创建字符串时,可以使用单引号或双引号封装字符,就像在打印文本时所做的那样。此外,必须在字符的开头和末尾使用相同类型的引号。如果在字符串中间出现相同的引号,就必须对它进行转义:

$var = "Define \"platitude\", please.";

另一种方式是使用单引号:

$var = 'Define "platitude", please.';

为了打印字符串的值,可以使用echoprint

echo or print:
echo $first_name;

为了在某种环境内打印出字符串的值,可以使用双引号:

echo "Hello, $first_name";

你已经使用了一次字符串——在上一节中使用预定义的变量时。在下一个示例中,将创建和使用新的字符串。

使用字符串

1. 在文本编辑器或IDE中创建一个新的PHP文档,命名为Strings.php。以HTML和PHP开始标签开头(参见脚本1-6)。

脚本1-6 在这个介绍性的脚本中创建字符串变量并把它们的值发送给Web浏览器

1    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
3    <head>
4       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5       <title>Strings</title>
6    </head>
7    <body>
8    <?php # Script 1.6 - strings.php
9    
10   // Create the variables:
11   $first_name = 'Haruki';
12   $last_name = 'Murakami';
13   $book = 'Kafka on the Shore';
14   
15   // Print the values:
16   echo "<p>The book <em>$book</em> was written by $first_name $last_name.</p>";
17   
18   ?>
19   </body>
20   </html>

2. 在PHP标签内,创建3个变量。

$first_name = 'Haruki';
$last_name = 'Murakami';
$book = 'Kafka on the Shore';

这个基本的示例创建了$first_name$last_name$book这3个变量,随后将会在一条消息中打印出它们。

3. 添加echo语句。

echo "<p>The book <em>$book</em> was written by $first_name $last_name.</p>";

这个脚本所做的全部工作是基于已建立的3个变量打印出一份作者身份声明。其中插入了很少的HTML格式化效果(强调书名的斜体),使之更吸引人。记住在这里为要打印的变量值相应地使用双引号(在本章末尾将更详细地讨论双引号的重要性)。

4. 完成HTML和PHP代码。

?>
</body>
</html>

5. 将该文件另存为strings.php,存放在Web目录中,并在Web浏览器中测试它(参见图1-13)。

图1-13 得到的Web页面基于打印出的3个变量的值

6. 如果需要,可更改3个变量的值,保存文件并再次运行脚本(参见图1-14)。

图1-14 通过改变脚本中的变量来改变脚本的输出

提示

  • 如果把另一个值赋予现有的变量(比如:$book),新的值就会重写旧的值。例如:

    $book = 'High Fidelity';
    $book = 'The Corrections';
    /* $book now has a value of
    'The Corrections'. */
    
  • PHP没有对一个字符串的可能取值设置上限。理论上讲,它可能会受到服务器资源的限制,但是,不一定会碰到这样的问题。

目录