你可以在PHP中将变量追加到变量吗?

时间:2012-01-29 03:28:52

标签: php string operators

为什么输出0?它适用于数字而不是字符串。我在Javascript中有类似的代码也可以。 PHP不喜欢带字符串的+ =吗?

<?php
$selectBox = '<select name="number">';
for ($i=1;$i<=100;$i++)
{
    $selectBox += '<option value="' . $i . '">' . $i . '</option>';
}
$selectBox += '</select>';

echo $selectBox;
?>

3 个答案:

答案 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;

?>
相关问题