为什么 echo 的输出需要单独放在输入字段中占位符字符串的引号中?

Why echo's output needs to be separately put in quotes for placeholder's string in input field?

我正在通过 PHP 回显函数为占位符动态生成一个字符串,如果我不在 PHP 标签周围加上引号,则输出仅采用字符串的第一个单词。为什么这样?

  1. placeholder=<?php echo "Hello World"?>
    它仅在输入字段
  2. 中输出 Hello
  3. placeholder="<?php echo "Hello World"?>"(注意 PHP 标签周围的引号)
    它在输入字段中输出 Hello World。

输入字段的值属性也是如此。

请注意,对于第一种情况,渲染器将输出

placeholder=hello world

因为没有引号,它会将第一个单词作为占位符的值(但这是一种不好的做法)。 第二种情况很好,因为它有引号

placeholder="hello world"

所以你需要关心你的输出结果如何。

对于第一种情况 placeholder=<?php echo "Hello World"?> 只会像这样输出 placeholder=Hello World 这不是有效的 HTML 格式 但是第二个 placeholder="<?php echo "Hello World"?>" 在这里输入代码会输出 placeholder="Hello World" 这是有效的,所以总是选择第二个。

如果你只是回显一个字符串,你可以这样做 <?="hello world" ?>

这取决于 placeholder 属性的构造方式。

您应该符合将您的值放在引号之间的标准(参见 this example 作为证明)。

如果您希望在值中添加空格,则需要将值放在引号之间。

想象一下当你这样做的时候:

<input type="text" placeholder=<?php echo "Hello World"?> >

您在 HTML 文件中返回:

<input type="text" placeholder=Hello World >

它读取 'Hello' 作为它的值,然后 HTML 将 'World' 视为另一个属性。这就是为什么您需要将您的值放在引号之间以表示整个字符串是 placeholder 属性的一部分。