There are tons of web hosting companies these days that offer FREE hosting, but as there is nothing free in this world, you get what you pay for and in this case you get what you don't pay for (you will see later down). There are also tons of sites which review hosting sites and I found 90% of them (through google) which are very biased as they are trying to advertise, even forums are filled with affililate marketers and their opinions are very biased. This review is definitely unbiased.
I found xtreemhost.com when I was looking for a free and ad-free php host for a super light-weight website that used no CMS and only had like a couple of pages. I chose xtreemhost because I was attracted to their features mentioned in their home page - fast loading, 5.5 GB of space, 200 GB bandwidth per month, with mail and htaccess enabled. The space was overkill for my requirements but I found it offered the most when compared to other free hosting service and I was also planning to add more websites later. Before registering you are forced to create a free domain name with cz.cc but after registering you can create websites in the form yoursite.xtreemhost.com
The first noticable thing about a free host is the speed which is the time it takes for your page to load. This was clearly felt when I uploaded my simple light-weight website with only text and no images - it was a tad slower to load about 5 seconds more than say google.com. A few days later I set up another one - a Joomla site and the admin panel was so slow that I had to wait more than 30 seconds for it to load, Joomla is a heavy-weight CMS and this was expected. The front end loaded faster just like my first site but only the text part, the images took further 10 seconds to load. Transferring files via FTP was very slow too especially when you have got 1000+ files, you have to zip them first.
Xtreemhost uses vista panel for their control panel which is pretty easy to use. They offer unlimited email accounts, a maximum of 50 sub-domains, 50 addon domain, 50 parked domain, 50 MySQL databases and 1 FTP account. I would say good feature packed for a free hosting. I liked the fact that when you added a secondary domain they created separate folders for each addon domain under your home folder. Even paid hosts like bluehost don't have this feature - they just create all folders under the public_html and force you with alternate urls attached to your primary domain.
Xtreemhost's one-click script installer for installing CMSes like wordpress, joomla, etc was not working for some reason but after a few days they fixed it. I ran into other problems during development like the "allow_url_fopen" in apache was disabled which means I was not able use php's file_get_contents function to connect to a url so I did a workaround by using CURL. I also found that for some reason I couldn't connect to twitter's API (maybe it was blocked?) anyways I connected using the IP of twitter.com. And their email was slow to deliver, it delivered messages every 15 minutes after it was sent from my code.
In conclusion, I can say that if you are looking to host a website for some serious work then getting a free hosting is a big NO, as you can see you get slow page loads and disabled functions. But if you don't mind the down-sides of free hosting then xtreemhost is a good free host, they also have paid hosting and it sure will be better than the free one. If you are looking for a paid hosting then a good one in which I host my websites is HostGator's shared hosting which have no problems of a free hosting that I encountered above.