为什么输出0?它适用于数字而不是字符串。我在Javascript中有类似的代码也可以。 PHP不喜欢带字符串的+ =吗?
<?php
$selectBox = '<select name="number">';
for ($i=1;$i<=100;$i++)
{
$selectBox += '<option value="' . $i . '">' . $i . '</option>';
}
$selectBox += '</select>';
echo $selectBox;
?>
答案 0 :(得分:119)
这是因为PHP使用句点字符.
进行字符串连接,而不是加号字符+
。因此,要附加到要使用.=
运算符的字符串:
for ($i=1;$i<=100;$i++)
{
$selectBox .= '<option value="' . $i . '">' . $i . '</option>';
}
$selectBox .= '</select>';
答案 1 :(得分:17)
在PHP中使用.=
追加字符串,而不是+=
。
为什么输出0? [...] PHP不喜欢+ =和字符串吗?
+=
是一个算术运算符,用于将数字添加到另一个数字。将该运算符与字符串一起使用可实现自动类型转换。在OP的情况下,字符串已被转换为值0
的整数。
有关PHP运算符的更多信息:
答案 2 :(得分:1)
与JavaScript串联时,PHP语法几乎没有什么不同。
代替 (+) plus
,使用 (.) period
进行字符串连接。
<?php
$selectBox = '<select name="number">';
for ($i=1;$i<=100;$i++)
{
$selectBox += '<option value="' . $i . '">' . $i . '</option>'; // <-- (Wrong) Replace + with .
$selectBox .= '<option value="' . $i . '">' . $i . '</option>'; // <-- (Correct) Here + is replaced .
}
$selectBox += '</select>'; // <-- (Wrong) Replace + with .
$selectBox .= '</select>'; // <-- (Correct) Here + is replaced .
echo $selectBox;
?>