PHP编程:探索字串的奥秘

多米诺狂少

多米诺狂少

2016-01-29 13:13

PHP编程:探索字串的奥秘,PHP编程:探索字串的奥秘

在许多Web编程里,字符串总是会被大量地生成和处理的。正确地使用和处理字符串,对于PHP程序员来说也同样越来越重要了。本文从最简单的字符串定义一直引导你到高层字符串处理技巧,希望对大家有所帮助。

  
一、引号定义字符串

  在PHP中,通常一个字符串被定义在一对引 号中,如:

'I am a string in single quotes'
"I am a string in double quotes"

  PHP语法分析器是用成对的引号来判断一个字符串的。因此,所有字符串必须使用同一种单或者双引号来定义开始和结束。例如,下面的字串定义是不合法的:

"I am not a valid string since I have unmatching quote marks'
'Me neither!"

  定义字符串时,只有一种引号被视为定义符,即单引号或双引号。于是,如果一个字符串由双引号开始,那么只有双引号被分析器解析。这样,你就可以在双引号串中包含任何其他字符,甚至单引号。下面的引号串都是合法的:

$s = "I am a 'single quote string' inside a double quote string";
$s = 'I am a "double quote string" inside a single quote string';

  当PHP遇到与串的开头相对应的引号时,便认为已经到了字符串尾部,于是:

"Why doesn't "this" work?"

  实际上被PHP语法分析器分成三个部分:

"Why doesn't "包含一个单引号的双引号串
this多余的字符,分析器无法处理
" work?" 普通字符串

  上面的这个例子企图在双引号串中包含双引号,而分析器在遇到第二个双引号时便认为字符串结束了。要达到包含引号的目的, 必须分析器在遇到串内普通引号的时候忽略它的原意,我们在引号的前面加上一个反斜杠来告诉PHP:这个引号是字符串的一部分,正确的表示方法是这样:

"Why doesn't "that" work?"

  在英文字符串中一个常见的问题是撇号'的使用,因为它就是一个单引号,而在英文串中十分常见(英文所有格)。你必须小心处理这些字符:

'You'd better escape your apostrophes'

  可以看到反斜杠在字符串中有他的特殊含义,当我们需要在字符串中包含反斜杠本身时,需要在该符号前面多加一个反斜杠。例如:

$file = "c:windowssystem.ini";
echo $file; // 打印结果为: c:windowssystem.ini
$file = "c:\windows\system.ini";
echo $file; // 打印结果为: c:windowssystem.ini

  另一种字符串定义方式,能够消除特殊字符的烦恼,而且便于引用较长的文本。该字符串定义方法以<<<符号紧跟一个自定义字符串开头,最后一行以该自定义字符串结束,并且必须顶格。


二、字串的连接

  字串可以使用字串连接符(.)来连接,如:

$first_name = 'Charlie';
$last_name = 'Brown';
$full_name = $first_name . ' ' . $last_name;

  常见的用途是建立大块的HTML字串代码,赋值号 (=) 连接符 (.) 可以被简写合并为 (.=) 符号,如:

$html = '<table';
$html .= '<tr<tdnumber</td<tdsquare</td</tr';
for ( $i=0 ; $i<10 ; $i++) {
$square = $i * $i;
$html .= '<tr<td' . $i . '</td<td' . $square . '</td</tr';
}
$html .= '</table';


三、在字串中使用变量

  这个功能让你无须使用连接符号来粘和大量的简单字符串。PHP允许我们在双引号串中直接包含字串变量,我们可以发现下面的两个字串的处理结果是相同的。

$full_name = $first_name . ' ' . $last_name;
$full_name = "$first_name $last_name";

  单引号串和双引号串在PHP中的处理是不相同的。双引号串中的内容可以被解释而且替换,而单引号串中的内容总被认为是普通字符。例如:

$foo = 2;
echo "foo is $foo"; // 打印结果: foo is 2
echo 'foo is $foo'; // 打印结果: foo is $foo
echo "foo is $foon"; // 打印结果: foo is 2 (同时换行)
echo 'foo is $foon'; // 打印结果: foo is $foon

  正如你所看

展开更多 50%)
分享

猜你喜欢

PHP编程:探索字串的奥秘

PHP
PHP编程:探索字串的奥秘

探索字串的奥秘

PHP
探索字串的奥秘

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

探索RAW格式的奥秘

摄影入门 摄影
探索RAW格式的奥秘

科学魅力 探索叶子的奥秘

电脑网络
科学魅力 探索叶子的奥秘

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

PHP 程序加速探索

Web开发
PHP 程序加速探索

探索RAW格式的奥秘 新手如何选择使用

电脑网络
探索RAW格式的奥秘 新手如何选择使用

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

PHP调用三种数据库的方法(1)

PHP调用三种数据库的方法(1)

Mono开发指南——第四章 Mono 初览

Mono开发指南——第四章 Mono 初览
下拉加载更多内容 ↓