我已经在几个脚本中看到了这一点,但不知道这意味着什么。正如此线程标题中所见,语法如下:{$ variable1} {$ variable2}。它等同于:$ variable1。$ variable2?
感谢您的帮助!
答案 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)