Treba osobne se snazim vyvijet vse tak, aby to bezelo na php4 i php5 bez problemu. Testuji tedy na obou a za tu dobu jsem si tak nejak uz i vychytal styl programovani. Vyvijim na php5 a nenalezam problemy i kdyz to spustim na php4 a obracene.
Jo, ale pak nemůžeš používat výjimky, private/public metody, typovou kontrolu u funkcí apod. Obyčejné WWW stránky se bez toho obejdou (za cenu trochu ošklivějšího kódu), ale u něčeho většího bys asi narazil.
Právě to je trochu mýtus, kvůli tomu že všichni zůstávají u PHP4 a neznají výhody PHP5. V PHP5 je typová kontrola parametrů funkcí, dědičnost, výjimky, MVC frameworky (např. Zend framework), nástroje pro unit testy (Simpletest), ...
Mě proti např. Javě chybí namespace a privátní třídy (deklarované uvnitř jiné třídy), ale to vadí až u opravdu velkých projektů.
Typová kontrola, pokud vím, umí kontrolovat jen objekty (ne základní typy jako int a string atd.). Koneckonců, PHP vzniklo jako netypový jazyk. Dědičnost byla snad i v PHP 4 (přestože osekaná, vzhledem k "všechny atributy a metodyjsou veřejné" stylu).
Jmenné prostory se plánují do dalších verzí PHP (5.x). Vnořené třídy se nijak netýkají velikosti projektů, jako spíš stylu programování...
Pokud máš velký projekt, na kterém dělá několik lidí najednou, tak se ti stane, že si 2 lidé pojmenují stejně nějakou pomocnou datovou třídu (která není součástí domluveného rozhraní). A tomu jde právě předejít buď jmennými prostory, a nebo vnořenými třídami (protože ta datová třída obvykle patří k nějaké jiné třídě, která je součástí rozhraní).