If you want to learn a programming language, most people advise you start out with Learning Perl, the inimitable classic by Randal Schwartz. And I agree that it is a pretty good book, which I have referred to many people as a great starting place.
But personally, I learned more about programming from Programming PHP (a.k.a. "the cuckoo book" as per the animal on the cover, not for any sanity claims) than I did from Learning Perl. This may be partly because I'm a visual person, with a love for website design, and I have an easier time picturing how I might use PHP than I do a command line tool like Perl. (Sure you can write web pages in Perl, but why would you want to?)
Unlike Learning Perl, Programming PHP is not structured to be used from beginning to end. Instead, you can skip around to whatever bit you need at the moment. That being said, the first five chapters of the book are its real strength, and they do work best if taken in order.
The best part of Programming PHP, to a young novice like I was when I bought this book, is the second chapter, "Language Basics." This walks you through the underlying concepts you need to understand before you can begin to grasp any programming language. Lerdorf and Tatroe walk you through the basics of data types, variables, flow control statements, and other things which seem so blatantly obvious to the experienced programmer, and so vastly mysterious to the beginner.
I understand that Python has supplanted PHP in almost every respect, from its ease of use to its friendliness towards beginners, and through to its flexibility. But when I picked it up way back in 2002, PHP was the best game in town. I think it still is, although there is an entire army of Python and Ruby programmers who just did a spit take when I typed that.
In its later chapters, Programming PHP tackles trickier issues, like handling XML and implementing code libraries. Frankly, by the time you get to the point where you are ready to learn how to use PHP to parse XML, you would be better off with another book. But these chapters serve the newbie well, as a sort of thumbnail guide to the other things you can do with PHP.
As with all O'Reilly books, Programming PHP has an outstanding index, a wonderful layout, and is written in a clear and concise manner. Each chapter begins with a basic concept, and shows a bit of basic code. It then builds from there, explaining the more complicated things while adding them gradually into the code. By the end of the chapter, the little bit of code has turned into quite a lot of code, which (assuming you have been following along) you now understand from the ground up. Lerdorf and Tatroe obviously had the raw beginner in mind when they put the book together, and I as a former raw beginner who was helped by this book beyond measure, can only thank them for their work.
