在PHP中使用echo

时间:2014-11-07 17:24:05

标签: php

考虑:

$name = "algs";
<input type="text" name="name" value="<?php echo $name?>">

现在,我对PHP非常陌生,我对上面的代码非常困惑:我知道echo用于根据manual输出字符串。但为什么我们必须做

value="<?php echo $name?>"

而不仅仅是

value="<?php $name?>" //if I only want to put it inside a textfield

我认为它只是输出字符串。根据结果​​,我认为它会归还它。我第一次看到这个,我以为php就是这样:

value="std::cout $name << '\n' ?>" //just an example

任何人都能解释一下吗?如果我们只想将变量的值存储到另一个变量,为什么我们必须使用echo?

4 个答案:

答案 0 :(得分:5)

因为你似乎知道一点c ++,所以我的解释是:

<?php $name = 'Test'; $name ?>

相当于

std::string name = "Test"; name;

这不输出任何字符串吗?这只定义了一个变量,但从未将其内容打印到屏幕上。

但你要找的是:

<?php echo $name ?> or <?= $name ?> (both are the same)

相当于

std::cout << name;

这会将变量内容打印到屏幕上或您的html中。

答案 1 :(得分:3)

您需要告诉PHP解释器您希望回显变量。它自然不假设变量将被写入输出缓冲区。

在这种情况下,您不会将一个变量的值存储为另一个变量的值。您正在编写HTML代码(到输出缓冲区),您还希望带上变量的值并将其写入输出缓冲区,这需要使用echo(或print)。

答案 2 :(得分:1)

那是因为$ name只是变量,你不是在告诉php什么也不做。使用echo,您可以告诉php在html输出中打印$ name的值。

因此,如果$ name的值是“kevin”

<input type="text" name="name" value="<?php echo $name?>"> 

输出将是

<input type="text" name="name" value="kevin">

否则,如果你不写“echo”:

<input type="text" name="name" value="<?php $name?>"> 

将输出

<input type="text" name="name" value=""> 

答案 3 :(得分:1)

我认为这很重要,因为我认为这是关于php的一个常见问题,当人们第一次学习它时,它并没有被很好地理解。得到的是html和php基本上是独立的。一个人在下一次发生之前完成并完成:

html代码正由客户端的计算机处理。 php正在服务器上执行。这两个项目实际上并没有按照您的思维方式进行交互。考虑服务器上的普通静态html文件。这将被发送到客户端计算机,然后由chrome或其他浏览器呈现。 php正在做的是预处理html文件。在某种程度上,您可以将其视为在发送之前对html文件进行的自定义编辑。

所以,基本上PHP执行,准备html,然后它被提供给浏览器进行渲染。 PHP运行,然后停止运行,然后将html提供给浏览器。浏览器轮流时,php变量$ name不再存在。并且,无论如何,它们通常是两台单独的计算机。

所以你必须将变量回显到html中。此技术也可以与javascript一起使用。