在前面的文章中,我们介绍了“PHP数据类型——String字符串”。在定义字符串时,当字符串用双引号或 heredoc 结构定义时,字符串中的变量将会被解析。
PHP在字符串中使用变量时,可以使用以下2种语法规则:简单语法
复杂语法
简单语法
简单的语法规则是最常用和最方便的,它可以用最少的代码在一个 string 中嵌入一个变量,一个 array 的值,或一个 object 的属性。
当 PHP 解析器遇到一个美元符号($)时,它会和其它很多解析器一样,去组合尽量多的标识以形成一个合法的变量名。可以用花括号来明确变量名的界线。<?php $name='neil';echo"My name is$name.".PHP_EOL;
以上代码字符串中的变量将被解析,输出以下结果:My name is neil .
同样,一个 array 索引或一个 object 属性也可被解析。数组索引要用方括号(])来表示索引结束的边界,对象属性则是和上述的变量规则相同。<?php //字符串中使用数组array$names=array("neil","jack","name"=>"tom");echo"First name is$names[0].".'
';echo"Second name is$names[1].".'
';echo"Last name is$names[name].".'
';//字符串中使用对象classpeople{public$neil="neil";}$people=newpeople();echo"the name is$people->neil.";
以上代码只是简单的使用$将变量引入字符串,如果想要表达更复杂的结构,可以使用复杂语法。
复杂(花括号)语法
复杂规则语法的显著标记是用花括号包围的表达式。
语法不是因为其语法复杂而得名,而是因为它可以使用复杂的表达式。任何具有 string 表达的标量变量,数组元素或对象属性都可使用此语法。只需简单地像在 string 以外的地方那样写出表达式,然后用花括号 { 和 } 把它括起来即可。
注意:
由于 { 无法被转义,只有 $ 紧挨着 { 时才会被识别。可以用 {\$ 来表达 {$。
下面的示例可以更好的解释:<?php $great='fantastic';//无效,输出: This is { fantastic}echo"This is {$great}";//有效,输出:This is fantasticecho"This is{$great}";//有效,只有通过花括号语法才能正确解析带引号的键名echo"This works:{$arr['key']}";//有效echo"This works:{$arr[4][3]}";