【发布时间】:2011-06-08 14:57:05
【问题描述】:
我在几个脚本中看到过这个,但不知道它是什么意思。正如在这个线程的标题中已经看到的,语法是这样的:{$variable1}{$variable2}。是否等同于: $variable1.$variable2 ?
感谢您的帮助!
【问题讨论】:
-
你能给我们更多的背景信息吗?
我在几个脚本中看到过这个,但不知道它是什么意思。正如在这个线程的标题中已经看到的,语法是这样的:{$variable1}{$variable2}。是否等同于: $variable1.$variable2 ?
感谢您的帮助!
【问题讨论】:
是的,它几乎总是等同于使用串联:$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;
【讨论】:
简单的答案是肯定的,它是一样的。包含在这些括号中的变量输出该变量。 请注意,可悲的是,您不能这样做:
$a = "hello: {$a+1}";
或
$b = "world: {someFunction($a)}";
这只是一种输出变量的快速方法,因此事情不会变得复杂。 试试看:
echo "hello mr {$name}!";
对
echo "hello mr ".$name."!";
第一个更清楚。
将变量放在大括号中会更好,因为它看起来更美观,更易于阅读,并且还可以让您在变量名后直接有字母,例如:
echo "Today is the {$date}st";
【讨论】:
echo 'some {$variable}'; 是行不通的
是的,它是等价的,但它有助于清楚地识别字符串的哪一部分是变量名,而哪一部分不是。
例如:
<?php
$var1 = "somevalue1";
$var1is = "somevalue2";
echo "${var1}is nice"; //prints "somevalue1is nice"
echo "$var1is nice"; //prints "somvalue2 nice"
?>
【讨论】:
我假设您已经熟悉 print "hello $user;" 和 print "hello ".$user;。但是,如果您想连接 2 个变量(并且您更喜欢像前一个示例那样嵌入字符串),而不是使用 print "hello ".$user.$something;,您也可以使用 print "hello {$user}{$something}";。
【讨论】:
【讨论】: