【问题标题】:Can you append strings to variables in PHP? [duplicate]您可以将字符串附加到 PHP 中的变量吗? [复制]
【发布时间】: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;
?>

【问题讨论】:

  • 这个问题真的是重复的吗?该问题要求在特殊情况下附加一个字符串,并对代码的输出提出更具体的问题。

标签: php string 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 中的操作符:

    【讨论】:

    • $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>';
    

    【讨论】:

      猜你喜欢
      • 2016-07-14
      • 1970-01-01
      • 2020-06-22
      • 1970-01-01
      • 2021-05-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多