在PHP中使用echo


Use of echo in PHP

考虑:

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

现在,我对PHP非常陌生,上面的代码让我非常困惑:我知道echo是根据手册用来输出字符串的。但是我们为什么要做

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?

由于您似乎对c++有一点了解,下面是我的解释:

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

相当于

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

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

但你要找的是:

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

相当于

std::cout << name;

这会将可变内容打印到屏幕上,或者在您的情况下打印到html中。

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

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

这是因为$name只是变量,你并没有告诉php什么都不做。使用echo,你告诉php在html输出中打印$name的值。

所以如果$name的值是"kevin"

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

输出将是

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

否则,如果你不写"回声":

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

将输出

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

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

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

因此,基本上PHP执行,准备html,然后将其提供给浏览器进行渲染。PHP运行,然后停止运行,然后将html提供给浏览器。轮到浏览器时,php变量$name已不存在。而且,它们通常是两台独立的计算机。

因此,您必须将变量回显到html中。这种技术也可以与javascript一起使用。