Если в PHP выполнить операцию сложения (
+) числа 3 (int) и строки "4" (string), то PHP автоматически приведёт строку "4" к числу, и произойдёт арифметическая операция: $result = 3 + "4";
echo $result; // 7
🚩Как это работает?
PHP видит, что используется оператор
+, который применяется только к числам."4" — это строка, но она содержит только число, поэтому PHP автоматически преобразует её в int.Затем выполняется операция
3 + 4, и результатом будет 7.🚩Что если строка не является числом?
Если строка не является корректным числом, PHP попробует взять из неё число с начала строки. Если в начале строки нет цифр, то строка будет воспринята как
0. Примеры странных случаев
echo 3 + "4abc"; // 7 (строка "4abc" преобразуется в число 4)
echo 3 + "abc4"; // 3 (строка "abc4" преобразуется в 0, т.к. начинается не с цифры)
echo 3 + "0.5"; // 3.5 (строка "0.5" преобразуется в число 0.5)
echo 3 + " "; // 3 (пробелы преобразуются в 0)
🚩Что если использовать `.` вместо `+`?
Если вместо
+ использовать . (конкатенацию строк), то числа не складываются, а просто соединяются как строкиecho 3 . "4"; // "34" (строка)
Ставь 👍 и забирай 📚 Базу знаний