文章教程

12.1.1使用单引号指定字符串

9/17/2020 9:37:07 PM 人评论 次浏览

12.1 字符串的指定方法

使用GET或POST方式提交数据时,这些数据都会被封装成字符串类型的数据提交到WEB服务器;另外Session文件和Cookie文件中的数据也都是以字符串类型的数据进行保存的。作为WEB开发语言,PHP最常打交道的数据类型就是字符串。毫不夸张地说,字符串在PHP中占据着举足轻重的地位,对于开发者来说,处理字符串是一项非常基础的技能。

字符串最简单的指定方法是使用单引号(')或者双引号("),除此以外还可以使用定界符(Heredoc Syntax)指定字符串。

12.1.1 使用单引号指定字符串

使用单引号指定字符串时,除了两个特殊字符序列(\\和\')外,该字符串的内容将逐个字符进行处理。例如程序single.php如下。

<?php

$teacher = 'teacher';

$introduction = 'I\'m a $teacher\\n,you are a student.';

echo $introduction; //输出:I'm a $teacher\n,you are a student.

?>

12.1.2 使用双引号指定字符串

在PHP程序中,使用双引号指定字符串时,该字符串的内容将被预处理。当字符串中存在变量名(以$开头)时,变量名被变量值替代;当字符串中存在如表12-1所示的6个特殊字符序列时,字符序列被转义成对应的字符。例如程序double1.php如下。

表12-16 个特殊字符序列
figure_0275_0352
续表
figure_0276_0353

<?php

$fruit = "苹果";

$old_string = "我喜欢吃$fruit<br/>";

$fruit = "桔子";

$new_string = "我更喜欢吃$fruit<br/>";

echo $old_string; //输出:我喜欢吃苹果

echo $new_string; //输出:我更喜欢吃桔子

?>

程序double1.php中,由于变量$old_string的值使用双引号指定为字符串类型的数据,PHP预处理器会将变量$old_string预处理,使用变量值“苹果”替代变量$fruit,然后PHP预处理器使用同样的方法将变量$new_string进行预处理。

figure_0276_0354双引号指定的字符串会花费PHP预处理器的处理时间,因此使用单引号指定字符串是一种良好的编程习惯。

如下程序double2.php中,双引号指定的字符串中存在特殊的字符序列。

<?php

$teacher = "teacher";

$introduction = "I\'m a $teacher\\n,you are a student.";

echo $introduction; //输出:I\'m a teacher\n,you are a student.

?>

如果双引号指定的字符串中存在变量名时,变量名应该从“$”开始,而变量名在哪个字符处结束有可能出现异议,例如,如下程序double3.php,该程序的运行结果如图12-1所示。

figure_0276_0355
图12-1 双引号指定的字符串

<?php

$sport = 'foot';

$plan = "I will play $sportball in the summertime.";

echo $plan;

?>

使用双引号指定字符串时,字符串序列“{$”和字符“}”之间的字符串可以用于表示变量名,该字符串最终被变量值替代,例如程序double4.php如下。

<?php

$sport = 'foot';

$plan = "I will play {$sport}ball in the summertime.";

echo $plan; //输出:I will play football in the summertime.

?>

12.1.3 使用定界符指定字符串

除了可以使用单引号和双引号指定字符串外,PHP还提供了定界符(Heredoc Syntax)指定字符串的方法。在指定一个文本块,尤其是包含了HTML的FORM表单的文本块时,使用定界符指定字符串非常便利。例如程序heredoc.php如下,该程序的运行结果如图12-2所示。

figure_0277_0356
图12-2 定界符指定的字符串

<?php

$name = "张三";

$submit = "提交";

$my_form = <<<form

<form>

用户名:<input type="text" name="name" value="$name"><br/>

密 码 :<input type="password" name="password"><br/>

<input type="submit" value="$submit"><br/>

</form>

form;

echo $my_form;

?>

使用定界符指定字符串说明如下。

(1)使用定界符指定字符串必须以3个左尖括号“<<<”开头。

(2)3个左尖括号后面为开始标识符,程序heredoc.php中为“form”;结束标识符必须和开始标识符相同,程序heredoc.php中同样为“form”。标识符的命名和变量名的命名方法相同。

(3)开始标识符和结束标识符中间的内容为文本块,文本块的内容将被预处理,且处理方式和使用双引号指定的字符串的处理方式相同。与使用双引号指定的字符串不同,使用定界符指定的字符串中允许包含双引号。

12.1.4 字符串中的字符处理

字符串是由零个或多个字符组成的有限序列,可以通过字符串的索引(index)检索字符串中的单个字符(index从0开始计数)。例如程序string_index.php如下,该程序的运行结果如图12-3所示。

<?php

$teacher = 'teacher';

for($index=0;$index<7;$index++){

$char = $teacher[$index];

echo $char;

}

echo "<br/>";

for($index=0;$index<7;$index++){

$char = $teacher{$index};

echo $char;

}

?>

figure_0278_0357
图12-3 字符串中的字符处理

字符串的索引(index)从0开始,检索字符串中的单个字符时可以使用“[index]”或“{index}”的方式取得该索引(index)对应的字符。

教程类别