A framework is a collection of code that should help make life easy for a programmer. For example a framework may have classes that will handle database connections (and handling differing engines), xml handling classes, user management classes etc etc.
Using a class can help ensure that you are not continuously writing the same complex code over and over again.
Such a framework is the Zend Framework which is about as official as you are going to get with a PHP framework.
Advantages of using an open source framework such as Zend Framework is that it is continuously being added too and bugs should be fixed quickly. Also as already suggested you will not be writing so much of the mundane behind the scenes functionality that you tend to have to write all the time.
In PHP I would say at the moment no. Proper frameworks for PHP have only recently started to get talked about (although some have existed for some time).
1 downside I never mentioned about frameworks is that they can hold a lot of baggage. If for example you know 100% that your application will be used with a mysql 5 database then there is so much surplus code within the frameworks that enable the use of other database engines.
To decide if you are going to use a framework you have to weigh up the pros and cons when planning out the project. If you do not know the setup your users will have (as in the database example) then they can be very useful but on the other hand the download and space required for your application increases.
Such a library (or framework) contains code which shall make certain tasks easier, it also shall centralise and generalise code in order not to require you to write some things yourself over and over again.
In addition to Peter's suggestions there is also the SPL (Standard PHP Library).
I would recommend using Zend Framework as aforementioned. I used CakePHP for a while, but its coupling is far too tight for me. Zend uses loose coupling which is so much nicer to work with and doesn't tie you down.
Zend Framework is pretty nice (although I haven't had a use for it on an actual project yet). From what I've found though is it's not really that beginner friendly based on the number of people I've helped get it running for them. Someone just jumping into PHP it may not be for them. The framework is really geared towards getting that corporate crowd more than anything.
Hi,
Depending what you want to do with framework.
My favorite framework is Zend, I tried also phpeclipse for php, but I do not like it too much, but good thing about it is that it is free.
cakephp is a good frame work. They have a lot of basics done for you already so you can get a website up and running much faster and having it do more (ajax and stuff).
The thing that makes it suck and no one want to use it is the great lack of documentation to support it. Imagine learning php with out the php.net documentation site ;p