Can you append strings to variables in PHP? [duplicate]
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:
for ($i=1;$i<=100;$i++){ $selectBox .= '<option value="' . $i . '">' . $i . '</option>';}$selectBox .= '</select>';
In PHP use .=
to append strings, and not +=
.
Why does this output 0? [...] Does PHP not like += with strings?
+=
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 value 0
.
More about operators in PHP:
PHP syntax is little different in case of concatenation from JavaScript.Instead of (+) plus
a (.) period
is used for string concatenation.
<?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;?>