PHP中变量定义和变量替换的方法
当用双引号或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
i hope so
Thank you all!
your story is so beautiful.
Thanks for the laugh, I needed it!
Motivation is the key.
Even though it will not be here tomorrow, the effect of it will.
..so much appreciated…
our … thoughts are … synchronized
What a great happy colourful wallpaper you have - very cool.
I want to hear more, his blog is pretty cool too.
What a great happy colourful wallpaper you have - very cool.
Ahhhhh! a very smart Heart!
Cheers to you….I look forward to reading more of your work. What a gem you are.
What else can one asked for that to inspire someone else? Very much appreciated
I磎 so happy today
Feels like a lot of pieces has fallen into place.