Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php表单中使用单引号和双引号_Php_Html - Fatal编程技术网

在php表单中使用单引号和双引号

在php表单中使用单引号和双引号,php,html,Php,Html,我遇到了以下代码: function input_text($elem, $val) { print '<input type = "test" name="' . $elem .'" val="'; print htmlentities($val[elem]) . '"/>'; 函数输入\文本($elem,$val){ 打印“”; 我对代码感到困惑:name=“”.$elem.“val=“”; 打印HTML属性($val[elem])。“/>” 1) 为什么要在$ele

我遇到了以下代码:

function input_text($elem, $val) {
  print '<input type = "test" name="' . $elem .'" val="';
  print htmlentities($val[elem]) . '"/>';
函数输入\文本($elem,$val){
打印“”;
我对代码感到困惑:
name=“”.$elem.“val=“”;
打印HTML属性($val[elem])。“/>”

1) 为什么要在$elem周围的双引号中加单引号和点?我可以只使用双引号,比如name=“$elem”吗

2) 这些代码的含义是什么:
val=“”;

打印HTML属性($val[elem])。“/>”

本例中的单引号表示PHP中的字符串

$var = 'This is a String';
它们与双引号一起使用的原因是,必须打印双引号才能获得正确的HTML输出

<input type="test" name="someName" val="someValue" />
1) 由于正在打印的字符串被单引号包围,因此变量不会在其中展开;变量只会在双引号字符串中展开。因此有必要进行串联。如果将其更改为使用双引号,则可以执行变量插值:

print "<input type='test' name='$elem' val='";
您必须在
htmlentities()
周围使用串联——只有变量可以插入字符串,而不是函数调用。但是,如果需要,您可以首先将值分配给变量:

function input_text($elem, $val) {
    $valent = htmlentities($val[elem]);
    print "<input type='test' name='$elem' val='$valent'/>";
}
函数输入\文本($elem,$val){
$valent=htmlentities($val[elem]);
打印“”;
}

顺便说一句,
$val[elem]
看起来像是一个打字错误,它可能应该是
$val[$elem]

我可以用name=“$elem”来代替吗?是的,如果你愿意,你可以这样做。谢谢!对于问题2,我可以写:val=“htmlentities($val[elem])”/>“;很抱歉,我之前的回答错了。你不能像我所说的那样进行变量插值,因为插值只发生在双引号内,而不是单引号内。因此在表达式:name=“.”.$elem.”中,串联组合了“.”和$elem
function input_text($elem, $val) {
    print "<input type='test' name='$elem' val='" . htmlentities($val[elem]) . "'/>";
}
function input_text($elem, $val) {
    $valent = htmlentities($val[elem]);
    print "<input type='test' name='$elem' val='$valent'/>";
}