Переменные в PHP

Первое, что бросается в глаза при использовании PHP — это отсутствие типизированных переменных, хотя некая типизация и присутствует, но тип переменной в каждом конкретном операторе зависит от контекста, например переменная $str=»10″ при использовании ее в операторе echo($str) будет иметь строковый тип (да, да, про char * можно забыть), а в выражениии типа $str=$str+1 будет обрабатываться как число.
Хотя это может показаться недостатком, данная особенность PHP имеет свой смысл, так как при обработке результатов форм ввода html очень трудно определить первоначальный тип переменной, и кроме того, все перобразования типов можно свалить на php (и забыть про itoa и atoi).
Также одной из интересных возможностей PHP является автоматический перенос переменных окружения и параметров скрипта в переменные PHP, причем отпадает необходимость перевода URL-кодированных значений переменных в нормальные, например при передаче скрипту параметра str=text%20with%20spaces ( запрос типа GET /some_script.php?str=text%20with%20spaces HTTP/1.0 ) будет образована переменная $str=»text with spaces».