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

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

2009年06月23号
查看评论 发表评论 671次浏览

当用双引号或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. Cheap Adidas Shoes
    发表于 2010年06月12号 17时46分34秒 | 1楼

    i hope so

  2. womens timberland boots sale
    发表于 2010年06月13号 15时26分45秒 | 2楼

    Thank you all!

  3. world cup jerseys 2010
    发表于 2010年06月17号 13时36分52秒 | 3楼

    your story is so beautiful.

  4. louis vuitton Monogram Mini Lin
    发表于 2010年06月18号 08时57分38秒 | 4楼

    Thanks for the laugh, I needed it!

  5. cheap basketball shoes
    发表于 2010年06月22号 09时09分05秒 | 5楼

    Motivation is the key.

  6. timberland boots
    发表于 2010年06月22号 09时56分58秒 | 6楼

    Even though it will not be here tomorrow, the effect of it will.

  7. sexy swimwear bikinis
    发表于 2010年06月22号 10时15分09秒 | 7楼

    ..so much appreciated…

  8. mbt chapa storm
    发表于 2010年06月23号 05时40分13秒 | 8楼

    our … thoughts are … synchronized

  9. Nike Air Force 1 Shoes
    发表于 2010年06月23号 09时28分03秒 | 9楼

    What a great happy colourful wallpaper you have - very cool.

  10. herve leger bandage
    发表于 2010年06月25号 02时19分19秒 | 10楼

    I want to hear more, his blog is pretty cool too.

  11. handbag
    发表于 2010年06月25号 04时51分51秒 | 11楼

    What a great happy colourful wallpaper you have - very cool.

  12. timberland boots sale
    发表于 2010年06月26号 17时47分25秒 | 12楼

    Ahhhhh! a very smart Heart!

  13. mens lacoste shoes
    发表于 2010年06月28号 07时16分14秒 | 13楼

    Cheers to you….I look forward to reading more of your work. What a gem you are.

  14. herve leger bandage
    发表于 2010年06月28号 09时31分27秒 | 14楼

    What else can one asked for that to inspire someone else? Very much appreciated

  15. Cheap Bags
    发表于 2010年06月28号 11时43分59秒 | 15楼

    I磎 so happy today :-) Feels like a lot of pieces has fallen into place.

评论页数:
1 2 3 4 255