首页 > PHP > PHP中变量定义和变量替换的方法

PHP中变量定义和变量替换的方法

2009年06月23号
查看评论 发表评论 1,944次浏览

当用双引号或heredoc定义字符串直接量时,字符串服从变量替换(variable interpolation)规则。替换即在字符串中用变量的值来替换变量名,也就是说在字符串中会自动进行变量解析。有两种方法把变量替换到字符串中——简单的方法和复杂的方法。

简单的方法是把变量名放在双引号字符串或heredoc中:

$who = ‘Kilroy’;

$where = ‘here’;

echo “$who was $where”;  

Kilroy was here

复杂的方法是把要替换的变量用大括号括起来。这种方法可以用于消除歧义或替换数组查找。大括号的经典作用是把变量名从周围的文本中分隔出来:

$n = 12;

echo “You are the {$n}th person”;

You are the 12th person

如果没有大括号的话,PHP就会尝试打印出变量$nth的值。

和一些shell环境不同,在PHP字符串中变量不会重复解析,而只处理在双引号字符串中的解析,然后把其结果被作为字符串的值:

$bar = ‘this is not printed’;

$foo = ‘$bar’;     // 单引号

print(“$foo”);     //双引号

$bar

4.1.2 用单引号括起来的字符串

Single-Quoted Strings

用单引号括起来的字符串并不替换变量。因为字符串直接量是用单引号括起来的,所以在下面的字符串中变量名没有被解析:

$name = ‘Fred’;

$str = ‘Hello, $name’;     // single-quoted 用单引号括起来

echo $str;

Hello, $name

在用单引号括起来的字符串中唯一可用的转义序列是 \’(把单引号放在用单引号括起来的字符串中)、\\(把一个反斜杠放在用单引号括起来的字符串中)。任何其他的反斜杠只能被解释为一个反斜杠:

$name = ‘Tim O\’Reilly’;    //转义的单引号

echo $name;

$path = ‘C:\\WINDOWS’;      //转义的反斜杠

echo $path;

$nope = ‘\n’;               // 不是转义序列

echo $nope;

Tim O’Reilly

C:\WINDOWS

\n

4.1.3 用双引号括起来的字符串

Double-Quoted Strings

用双引号括起来的字符串将会进行变量解析并且允许使用许多转义序列。表4-1列出了在用双引号括起来的字符串中PHP认可的转义序列。

表4-1:用双引号括起来的字符串中的转义序列

转义序列 字符含义
\”
 双引号
 
\n
 换行
 
\r
 回车
 
\t
 制表符
 
\\
 反斜杠
 
\$
 美元符号
 
\{
 左大括号
 
\}
 右大括号
 
\[
 左中括号
 
\]
 右中括号
 
\0 through \777
 用八进制表示的ASCII字符
 
\x0 through \xFF
 用十六进制表示的ASCII字符
 

页面: 1 2

类别PHP 标签
  1. corum watches
    发表于 2010年07月25号 13时22分47秒 | 1楼

    Good point on the concience

  2. lebron shoes
    发表于 2010年07月25号 16时36分15秒 | 2楼

    Thank you again for sharing that moment that brings me back to mine.

  3. handbags
    发表于 2010年07月28号 11时07分58秒 | 3楼

    lovely post

  4. Replica Omega Watches
    发表于 2010年07月28号 16时14分14秒 | 4楼

    I love it, thanks so much :)

  5. discount mbt shoes
    发表于 2010年07月30号 13时23分57秒 | 5楼

    I love that story, talk.

  6. mbt shoes
    发表于 2010年07月30号 16时24分25秒 | 6楼

    That is definitively enjoying the moment.

  7. miu miu handbag sale
    发表于 2010年08月02号 17时08分03秒 | 7楼

    That is very true side view.

评论页数:
1 2 3 4 255
你必需 登陆 才能发表评论.