Php动作与“echo”的区别

Php动作与“echo”的区别,php,action,Php,Action,有人能解释一下这两种说法的区别吗: <form method="post" action="<?php htmlspecialchars($_SERVER['PHP_SELF']); ?>"> 及 我没有看到行为上的差异。第一个示例将输出,因为htmlspecialchars不输出任何内容,它只返回处理过的内容 <form method="post" action=""> 只需将表单提交到当前页面 第二个示例将输出如下内容 <form method=

有人能解释一下这两种说法的区别吗:

<form method="post" action="<?php htmlspecialchars($_SERVER['PHP_SELF']); ?>">


我没有看到行为上的差异。

第一个示例将输出,因为htmlspecialchars不输出任何内容,它只返回处理过的内容

<form method="post" action="">
只需将表单提交到当前页面

第二个示例将输出如下内容

<form method="post" action="page.php"> 
其中page.php是当前脚本,请参见


因为一个空白操作将表单提交到当前页面,并且使用echo语句将打印到当前页面的路由,所以这两个操作的结果是相同的

区别很简单

如果代码没有打印任何内容,则为第一块

<form method="post" action="<?php htmlspecialchars($_SERVER['PHP_SELF']); ?>">
浏览器看到操作为空,并将表单数据发送到站点form.php

第二件作品将产生:

<form method="post" action="form.php">

如果您将其保留为空,没有回声,表单将发布到同一页面,因为没有定义任何操作,因此您可以将操作属性保留为空,或者根本不声明…@Alien先生。我不明白你的回答。请澄清未定义任何操作的含义。在第一种情况下,输出将为action=在第二种情况下,action=路径/on/server。Echo将显示值,如果没有Echo,它将不会被输出,因为您不使用单词Echo,您的action属性将没有与未定义等价的值,因此表单将发布在同一页面上,而使用php,您会执行相同的操作,因此,只需删除您的action属性,在第一种情况下,分配给action的字符串会发生什么情况?为什么在这种情况下,行动毫无作用@马克:为什么在第一种情况下action等同于你能解释为什么第一种情况返回action=?htmlspecialchars的返回是一个字符串。所以应该是action=。在第二种情况下,它不会导致action=echo。也许我不理解action和htmlspecialcharshtmlspecialchars的组合返回一个字符串,但是您需要一个函数来写出这个返回值。php函数的返回不会自动写出。另一个例子:试着做一个简单的计算,你会看到结果不会显示,直到你使用echo。谢谢你的解释。
<form method="post" action="">
<form method="post" action="form.php">