我遇到了这段代码:
function input_text($elem, $val) {
print '<input type = "test" name="' . $elem .'" val="';
print htmlentities($val[elem]) . '"/>';
我对代码感到困惑:name="' . $elem .'" val="';
print htmlentities($val[elem]) . '"/>'
1)为什么将单引号和点放在$ elem附近的双引号内?我可以使用双引号,如name =“$ elem”。
2)这些代码的含义是什么:val="';
print htmlentities($val[elem]) . '"/>'
答案 0 :(得分:0)
本例中的单引号表示PHP中的字符串。
$var = 'This is a String';
它们与双引号一起使用的原因是因为必须打印双引号才能获得正确的HTML输出
<input type="test" name="someName" val="someValue" />
PHP中的.
运算符是连接运算符,意味着将2个字符串合并为1。
$var = 'This' . ' and that'; //Evaluates to 'This and that'
答案 1 :(得分:0)
1)由于正在打印的字符串被单引号括起来,因此变量不会在其中展开;变量只在双引号字符串中扩展。所以串联是必要的。如果将其更改为使用双引号,则可以进行变量插值:
print "<input type='test' name='$elem' val='";
2)它没有特别的意义。程序员只需选择拆分命令就可以将这段HTML打印成两个PHP print
语句。首先他打印val="
,然后打印htmlentities($val[elem]) . "">>'
该功能可以改写为:
function input_text($elem, $val) {
print "<input type='test' name='$elem' val='" . htmlentities($val[elem]) . "'/>";
}
你必须在htmlentities()
周围使用连接 - 只有变量可以插入字符串,而不是函数调用。但是,如果需要,可以先将值赋给变量:
function input_text($elem, $val) {
$valent = htmlentities($val[elem]);
print "<input type='test' name='$elem' val='$valent'/>";
}
顺便说一句,$val[elem]
看起来像一个错字,可能应该是$val[$elem]
。