{$ variable1} {$ variable2}是什么意思?

时间:2011-06-08 14:57:06

标签: php variables syntax

我已经在几个脚本中看到了这一点,但不知道这意味着什么。正如此线程标题中所见,语法如下:{$ variable1} {$ variable2}。它等同于:$ variable1。$ variable2?

感谢您的帮助!

5 个答案:

答案 0 :(得分:2)

是的,它几乎总是等同于使用连接:$variable1.$variable2

当您在双引号(不是单引号)中嵌入变量时,使用花括号的complex (curly) syntax有助于区分以下两个变量,因此不存在混淆变量被引用。

例如,假设$test等于walk。如果我想输入walked

,该怎么办?
"$tested"

是指实际变量$tested

"{$test}ed"

是指$test,然后是短语ed

引用数组索引需要使用花括号。

echo "Test $array['test]'";

不起作用,但

echo "Test {$array['test]'}";

确实有效。

对于更人为的示例,假设$a包含es$test包含foobar

在这种情况下你需要使用花括号:

echo "$t{$a}t"; // Returns 'foobar'

通常,这是不必要的,但有时,解释器可能会对您的变量产生一些混淆。大多数情况下,它只是为了可读性目的。

echo "Test {$a}{$b}";

看起来比

更清晰
echo 'Test '.$a.$b;

答案 1 :(得分:1)

简单的答案是肯定的,它是一样的。这些括号中包含的变量输出该变量。 请注意,遗憾的是,你无法做到这一点:

$a = "hello: {$a+1}";

$b = "world: {someFunction($a)}";

这只是输出变量的一种快捷方式,所以事情并不复杂。 试着看看:

echo "hello mr {$name}!";

VS

echo "hello mr ".$name."!";

第一个更清楚。

将变量放在大括号中要好得多,因为它看起来更好,阅读更清晰,并且还允许在变量名后面直接输入字母,例如:

echo "Today is the {$date}st";

答案 2 :(得分:0)

是的,它是等价的,但清楚地识别字符串的哪个部分是变量名称是有用的,而不是。

E.g。 :

<?php
$var1 = "somevalue1";
$var1is = "somevalue2";
echo "${var1}is nice";  //prints "somevalue1is nice"
echo "$var1is nice"; //prints "somvalue2 nice"
?>

答案 3 :(得分:0)

我假设您已熟悉print "hello $user;"print "hello ".$user;。但是如果你想连接2个变量(你更喜欢嵌入像前一个例子那样的字符串),而不是print "hello ".$user.$something;,你也可以print "hello {$user}{$something}";

答案 4 :(得分:0)

您似乎指的是Complex (curly) syntax in the docs