您可以将字符串附加到PHP中的变量吗?

为什么以下代码输出0?

它适用于数字而不是字符串。 我在JavaScript中也有类似的代码,也可以使用。 PHP是否不喜欢+ =和字符串?

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

    echo $selectBox;
?>
James asked 2019-11-07T13:30:34Z
3个解决方案
126 votes

这是因为PHP使用句点字符.进行字符串连接,而不使用加号+。因此,要附加到字符串上,请使用.=运算符:

for ($i=1;$i<=100;$i++)
{
    $selectBox .= '<option value="' . $i . '">' . $i . '</option>';
}
$selectBox .= '</select>';
ON STRIKE - Jeremy Banks answered 2019-11-07T13:30:53Z
17 votes

在PHP中,请使用+=附加字符串,而不要使用+=

为什么此输出为0? [...] PHP是否不喜欢+ =和字符串?

+=是将一个数字添加到另一个数字的算术运算符。 对字符串使用该运算符会导致自动类型转换。 在OP的情况下,字符串已转换为值0的整数。


有关PHP中运算符的更多信息:

  • 参考-这个符号在PHP中是什么意思?
  • PHP手册–运算符
Henrik answered 2019-11-07T13:31:54Z
1 votes

与JavaScript串联时,PHP语法几乎没有什么不同。代替(.) period,而是使用(.) 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;

?>
Ali Haider answered 2019-11-07T13:32:23Z
translate from https://stackoverflow.com:/questions/9050685/can-you-append-strings-to-variables-in-php