运算符在没有 space 时在双引号内执行

Operators execute withing double quote when there is no space

我不确定以前有人问过这个问题。

我用旧的 PHP 代码从数据库中获取一些结果。我最近注意到它没有按预期工作。当我调试代码时发现了问题,但是我仍然不知道背后的原因。

假设我有如下代码,

$text1 = "A";
echo "BBB<$text1";  // print BBB
echo "<br/><br/>";
echo "BBB < $text1"; // print BBB < A

我很确定我错过了一些 PHP 基本概念。但我仍然找不到它。

当我在带 space 和不带 space 的双引号中使用 < 时,我得到了两个不同的结果。谁能解释一下这是怎么发生的?

要正确显示第一个字符串,您应该使用 htmlentities() 函数:

$text1 = "A";
echo htmlentities("BBB<$text1"); // print BBB<A
echo "<br/><br/>";
echo "BBB < $text1";


// BBB<A</br> is interpretted as a html tag