Вопрос проверяет знание автоматического приведения типов и поведения PHP при математических операциях.
При использовании оператора + PHP приводит строку к числу. Если строка начинается с числовой части, будет использовано это число. Если строка не содержит числа в начале, результат будет 0. После приведения производится обычное сложение. Такое поведение важно помнить, чтобы избежать неожиданных результатов.
Сложение в PHP всегда требует чисел, поэтому строка приводится к числовому типу.
Определение: Numeric string — строка, которую PHP может преобразовать в число, если она начинается с цифр или знака.
Примеры:
"10" → 10
"10abc" → 10
"abc10" → 0
"" → 0
+PHP сначала приведёт строку, затем выполнит сложение:
php
echo "15xyz" + 5; // 20
echo "xyz15" + 5; // 5
думать, что строка будет конкатенирована
ожидать исключения
забывать, что "0abc" → 0, а "abc0" → 0
использовать строгие типы
явно кастовать: (int)$value
использовать is_numeric() перед операциями
Понимание автоматического приведения типов помогает писать надёжный код и избегать скрытых ошибок при работе со строками.