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

Posted

技术标签:

【中文标题】您可以将字符串附加到 PHP 中的变量吗? [复制]【英文标题】:Can you append strings to variables in PHP? [duplicate] 【发布时间】:2012-02-21 11:15:01 【问题描述】:

为什么下面的代码输出0?

它适用于数字而不是字符串就好了。我在 javascript 中有类似的代码也可以工作。 php 不喜欢 += 带字符串吗?

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

    echo $selectBox;
?>

【问题讨论】:

Reference for PHP operators 这个问题真的是重复的吗?该问题要求在特殊情况下附加一个字符串,并对代码的输出提出更具体的问题。 【参考方案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;

?>

【讨论】:

【参考方案2】:

在 PHP 中使用.= 附加字符串,而不是+=

为什么会输出 0? [...] PHP 不喜欢 += 带字符串吗?

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


更多关于 PHP 中的操作符:

Reference - What does this symbol mean in PHP? PHP Manual – Operators

【讨论】:

$selectBox = '&lt;select&gt;'; $selectBox += '&lt;/select&gt;'; 扩展为$selectBox = '&lt;select&gt;' + '&lt;/select&gt;'; 如果字符串至少不以数字开头,PHP 会将它们转换为0。因此0+0【参考方案3】:

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

for ($i=1;$i<=100;$i++)

    $selectBox .= '<option value="' . $i . '">' . $i . '</option>';

$selectBox .= '</select>';

【讨论】:

以上是关于您可以将字符串附加到 PHP 中的变量吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

PHP将变量附加到地址栏中的url

如何将字符附加到字符串? [复制]

您可以将 PHP $_POST 变量设置为数组吗?

可以将 JavaScript 变量保存为文件吗? [复制]

您可以将 Amazon EBS 附加到多个实例吗?

我可以在没有 .bak 文件的情况下检索数据吗