在PHP中打印变量这两种方法有什么区别?

Printing variables in PHP the difference between these two methods?

我正在 PHP 学习编程,我了解到我可以通过不同的方法用文本打印变量,但我有一个问题:

PHP中的echo $var1 . ' ' . $var2echo "{$var1} {$var2}"有什么区别?使用什么?

我不明白为什么我们要使用大括号,即使是另一种方法,两者之间有什么区别。

谢谢!

根据您的评论:

No, I know the difference between double quotes and single quotes I just don’t understand why do I need to put curly brackets

你不需要“”大括号,但它们可以帮助阅读你的内插字符串。

请不要在您的代码中这样做,但请考虑:

<?php
$hi = 'h';
$hii = 'sh';

echo "$hiie";

结果是hie还是she

答案:两者都不是,你得到

Notice: Undefined variable: hiie

要解决此问题,您需要使用以下行之一明确说明:

echo "{$hi}ie"; // hie
echo "{$hii}e"; // she

第一种方法是串联法,很简单。 第二种方法: 您可以在双引号内打印变量,例如 echo " $var1 $var2 "; 但是如果你想在变量之前或之后直接打印一些东西 b/w 怎么办。例如: echo " $var1SomeOtherTextNotFromVariable$var2SomeMoreText "; PHP 将假设所有文本都是可变的,直到达到另一个 $。 要解决这个问题,您需要告诉 PHP 变量在哪里开始和结束。例如: echo " {$var1}SomeOtherTextNotFromVariable{$var2}SomeMoreText ";

备注 请查看 Progrock 的 答案以了解使用大括号的另一个好处。

(不是答案,但值得考虑。)

如果您处理数组,卷曲很有用:

$foo =
[
    'name' => 'Foo',
    'age'  => 23
];

echo "Name: {$foo['name']}, Age: {$foo['age']}\n";

输出:

Name: Foo, Age: 23

如果省略卷曲,则会出现如下错误:

Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting '-' or identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in ...