php - 回显时无需转义变量?

时间:2018-06-06 14:20:56

标签: php

所以当我意识到自己没有逃避变量时,我只是想要回避,但奇怪的是它起作用了。

$item = ['name'=>'jeremiah', 'age'=>'22'];

echo "<ul>";
foreach($item as $key => $value) {
    echo "<li> $key - $value</li>";
}

echo "</ul>";

当你需要做的就是这个

$item = ['name'=>'jeremiah', 'age'=>'22'];

echo "<ul>";
foreach($item as $key => $value) {
    echo "<li>" . $key . " - " .  $value . "</li>";
}

echo "</ul>";

自从我真的做了很多php之后已经过了几年,但是这个时候有什么变化?

PHP 7.2.2(cli)(内置:2018年1月31日19:31:15)(NTS MSVC15(Visual C ++ 2017)x64)

3 个答案:

答案 0 :(得分:2)

当您将变量放在double quotes中时,它将解析该值。情况一直如此。

所以:

echo "<li> $key - $value</li>";

并且

echo "<li>" . $key . " - " .  $value . "</li>";

会给你相同的结果。

答案 1 :(得分:1)

有几点需要注意:

双引号会在字符串中打印变量:

$var = 'hello';
echo "$var world"; # this will print hello world

单引号不会在字符串中打印变量值:

$var = 'hello';
echo '$var world'; # this will print $var world

你所追求的(或以为你曾经想过的)是连接,这只是意味着加入,就像这样:

$varOne = 'hello';
$varTwo = 'world';

echo $varOne. ' ' .$varTwo. ' - some other string'; # will print hello world - some other string

最佳做法是单引号和连接,这是因为能够清楚地看到变量在字符串中的使用时间,第三个选项比第一个选项更清晰。此外,单引号的执行速度比双引号要快(不是很多,因为它会加起来)。

答案 2 :(得分:0)

据我所知,当我开始学习PHP(5年前),在双引号之间,你可以回显变量,但不能在单引号之间。