在PHP中打印变量这两种方法之间的区别?

时间:2018-07-30 14:25:46

标签: php variables echo

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

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

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

谢谢!

3 个答案:

答案 0 :(得分:1)

根据您的评论:

  

不,我知道双引号和单引号之间的区别,我只是不明白为什么我需要使用大括号

您不需要“ 需要 ”大括号,但它们可以帮助您读取插值的字符串。

请不要在您的代码中执行此操作,但请考虑:

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

echo "$hiie";

您得到hieshe的结果吗?

答案:都不会,

  

通知:未定义的变量:hiie

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

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

答案 1 :(得分:1)

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

注意 请查看 Progrock的答案,以获得使用花括号的另一个好处。

答案 2 :(得分:1)

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

如果要处理数组,则曲线很有用:

$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 ...