在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'/>";
}