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;
?>
Why does the following code output 0?
It works with numbers instead of strings just fine. I have similar code in JavaScript that also works. Does PHP not like += with strings?
<?php
$selectBox = '<select name="number">';
for ($i=1; $i<=100; $i++)
{
$selectBox += '<option value="' . $i . '">' . $i . '</option>';
}
$selectBox += '</select>';
echo $selectBox;
?>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这是因为 PHP 使用句点字符
.
进行字符串连接,而不是加号字符+
。因此,要附加到字符串,您需要使用.=
运算符:This is because PHP uses the period character
.
for string concatenation, not the plus character+
. Therefore to append to a string you want to use the.=
operator:在 PHP 中,使用
.=
附加字符串,而不是+=
。+=
是一个算术运算符,用于将一个数字与另一个数字相加。将该运算符与字符串一起使用会导致自动类型转换。在OP的情况下,字符串已被转换为值0
的整数。有关 PHP 中运算符的更多信息:
In PHP use
.=
to append strings, and not+=
.+=
is an arithmetic operator to add a number to another number. Using that operator with strings leads to an automatic type conversion. In the OP's case the strings have been converted to integers of the value0
.More about operators in PHP:
PHP 语法在连接方面与 JavaScript 略有不同。
使用
(.) 句点
代替(+) plus
进行字符串连接。PHP syntax is little different in case of concatenation from JavaScript.
Instead of
(+) plus
a(.) period
is used for string concatenation.