
As a recently qualified Zend Certified Engineer I spent many an hour pouring through this book as part of my exam revision. The book is a relatively slim affair, the page count equalling that of only a few chapters in most other study guides, such as the Microsoft, Cisco or Novell examination publications. This is somewhat of a double-edged sword – on the plus side it means it will not take you very long to read through it. On the down side it means if you're quite new to PHP and are reading this book in isolation, you'll be left thinking “huh?” a number of times.
The book is split into 12 core areas that match those given in the exam. You are taken from the ‘Basics of PHP’ to ‘Debugging and Performance’, via a heady mix of some common (and not-so common) PHP functionality. The authors of each section reads like a veritable who’s who of the PHP world, with such luminaries as Stuart Herbert, Daniel Kushner, Chris Shiflett, George Schlossnagle, Björn Schotte and Marco Tabini included. The sections covered are:
The Basics of PHP
Object-Oriented PHP
PHP and the Web
Arrays
Strings and Regular Expressions
File Manipulation
Managing Dates and Times
Managing Email
PHP and Databases
Stream and Network Programming
Security
Debugging and Performance
Each section of the book is broken down into smaller chunks. The ‘Basics of PHP’ for example covers no less than 16 individual areas, from ‘PHP and XML’ to ‘Including Files’. While each area is covered competently, none ever go into any real depth. What they do achieve is to read as if you’re picking the brains of a PHP expert. A single paragraph can often contain several nuggets of vital information that occasionally even the PHP manual itself neglects to clearly identify. A small set of mock exam questions conclude each section. A larger practise exam, with a mix of questions from all core areas, is presented at the end of the book, along with a short chapter on what to expect on the day of the examination.
Probably the single most important point I can make is that if you are new to PHP then this book is not going to teach you everything required in order to pass the exam. PHP is such a far reaching language, with many diverse and sometimes complex functions, that without either real-world development experience, or an accompanying training course, you are likely to find yourself wondering just where in the book was subject X ever covered – the answer being, it probably wasn’t. This book will not teach you how to program fluently in PHP, although it would be fair to say that was never its aim anyway.
On the flip-side what this book most certainly does tell you is which areas of PHP you need to study in order to pass the exam. It doesn’t matter if you know the PDF or Sybase functions inside-out, as you’ll not be questioned on them. But if you’ve never touched a Socket connection in your PHP life, you’ve potentially a 12th of the exam to fail on. So use the sections presented as a “shopping list” of knowledge areas to focus on. For me personally there was nothing I read in the ‘Arrays’ section that came as any real discovery for me. But some of the Stream areas I had only touched on lightly, and quite some time ago, so it was useful to know that I really needed to brush-up on that area specifically.
There are a few important points to bear in mind while reading the book and preparing for the exam: The exam only covers PHP4 – and even then only up to 4.3.6 at the time of writing. If you’ve been living in the land of PHP5 for a while, then it can take a little re-adjustment, and you’re likely to get some test questions wrong on the basis of not remembering at which point in the PHP development cycle a certain feature or function parameter was introduced. This is especially noticeable in the Object Oriented section.
It’s also worth mentioning that the book/exam never dwells on a specific database format. You’ll not receive MySQL or Oracle related questions, instead it assumes the SQL standard.
I have a few reservations about this book that I need to address. First of all, it contains errors. Some of the practise exams have impossible to decipher code and multiple choice options that are simply incorrect. So make sure you download and print the errata for this book until corrected in a later edition, as it’s extremely off-putting. The layout of the book also leaves a lot to be desired. Test questions at the end of each section, which are arguably one of the most important parts of the book, are poorly formatted. A question is presented with the answer immediately below it. As the pages are not very large your eye tends to wander, and struggling to not see the answer (in order to have a fair chance of answering the question on your own) is hard. Even using the “slide a piece of paper slowly down the page, to hide the answers” trick doesn’t always work due to the layout – so be warned. It does feel as if this book was rushed to press, perhaps due to time constraints during editing.
My only other reservation is again with the mock questions presented. To start with there simply aren’t enough of them, and they don’t cover all the different question formats that the real exam gives you. During the exam questions take the form of: (1) Multiple Choice (2) ‘Select the right answer/s’ from the list below (3) Which word/s should be substituted in the above phrase and (4) Enter the correct function name, or the number of the line with the error on. You will not be given mock questions that cover all of those types.
In conclusion this book is both completely essential, but with a good measure of ‘frustration’ throw in. You literally have no other choice right now when it comes to reading about the exam contents, and you absolutely must read about them in order to stand any chance of passing. Blindly sitting down and trying to digest the whole PHP manual is whilst quite admirable, ultimately fruitless unless you’re blessed with a photographic memory.
Buy this book if you’re thinking of taking the exam. If you want to actually practise the exam, then buy the ‘Official Practise Exam’ book from the PHP Architect web site* instead. Using both will give you the best advantage possible. Combining both into a single book would have been perfect.
* http://www.phparch.com/cert/mock_testing.php