Your mixing things up here..
A domain name is simply a name pointing to an IP address.
PHP, web mail and suchlike is hosting - you want someone to give you a a server or a part of a server to use.
Hosting providers usually give you a domain name too, but that's just a little "extra", not the service itself.
Check with your ISP first, they often bundle some web or mail service for free or a modest fee.
Do you go to a school of some sort? They oten provide students with some web space and mail accounts.
Do you work somewhere? Your company may have a kind webmaster who can give you some web space.