Преобразование типов происходит следующим образом. Если переменной при равнивается строка (текст в кавычках) то эта переменная становится строковой. Если-жы с ней совершается одна из многих математических функций или она приравнивается численой переменой, она становится численной, причем если приравниваетс яне целому значению - то станет типом double. Пример:
$foo = "0"; // $foo строка (ASCII 48)
$foo++; // $foo тоже строка "1" (ASCII 49)
$foo += 1; // $foo теперь integer (2)
$foo = $foo + 1.3; // $foo теперь double (3.3)
$foo = 5 + "10 паросят"; // $foo теперь снова integer (15)
$foo = 5 + "10 ящиков"; // $foo и по прежнему integer (15)
значение в скобках - результирующее значение переменной
Преобразовывать типы можно чистА в сишном стиле:
$foo = 10; // $foo это integer
$bar = (double) $foo; // $bar это double
Разрешенный преобразования:
К стати, определить тип переменной можно функциями gettype(), is_long(), is_double(), is_string(), is_array() и is_object().