Customer Rating:      Summary: Poor. Lack or attention to detail (See list of errors, and decide for yourself) Comment: Regarding the Oct 2005 - First edition. I sure hope O'Reilly hires a better proof-reader, and re-issues this book with some basic corrections, and 100% more attention to the index problems.
I think the author did a poor job. A dedicated proofreader should have caught all the errors I have listed. I am only 20% through this book. At this point, this author has built zero confidence in the accuracy of anything he has to present in the rest of the book. I will now proceed to prove where my 'poor' evaluation comes from.
(My background: 25 years of programming, including skills with various machine languages,
assembly languages, Fortran, Pascal, PL/1, C, C++, Java, PHP, and Regular Expressions. )
Stated by the author: "This book assumes you are familiar with variables, lops, and other basic programming concepts [period]." This is incorrect, as other reviewers have noted. The author quickly drifts into examples of arrays, objects, advanced operators, etc. with no explanation, or even a reference to the section of the book that covers these new concepts.
Starting with "The PHP Language" section, I am finding an error or obvious omission, on an average of every three pages. This book has been poorly proof-read, and should not have made it past the publisher in this form. I expect far more accurate text that this, for an O'Reilly publication.
As for the six people whom the author lists as standing out particularly,
with regards to contributing corrections, improvements, and comments . . . I couldn't imagine how bad this work would be without their efforts.
Page 32: Using complex data forms and concepts in examples, without providing page references.
Here, arrays are introduced. Would it be so hard to add a footnote
"See the extensive Arrays section, starting on page 61."?
page 32: Same comment, applied to 'Objects'
Page 32: Same comment, applied to the '->' object operator.
( Page 132: "use the special -> operator". Other PHP documentation calls this the 'object operator', but this author does not use this literal phrase. There is also no index entry for this phrase, or any reference to it under 'operator' or 'object'. )
Page 42: 'Returning by Reference'. This obscure concept really needs an explanation of what is happening in the 5-line example. According to the 'Variable Scope' explanation (ten pages later),
the variable in this function is local, and is therefore not reference-able outside the function.
Yet the description of "Returning by Reference' indicate that the value of the variable is accessible.
Page 45: Introducing the capability of the GLOBALS array, with no caveats, for the purpose of overriding
scope. Ten pages later, in a different topic (Superglobals), we find the warning: "two superglobals that you should avoid ... $GLOBALS...". The warning should be on page 45, where you first start describing this superglobal. Again, has this author never heard of the literary construct called a footnote?
Page 51: In an example, '(int)' is used to typecast a bool into an integer. At the top of the next page, the typecast operation is written in another example as '(integer)'. If both syntaxes are supported, this sure would be a good place to note that.
Page 64: In the example, function_load_member. A $ID parameter is passed, but not used. Probably the "Bob" literal should be $ID.
Page 64: Same code example as above. This two line function has one assignment, and one return statement ('return true;'). The calling code evaluates the completion of this function as if there are multiple
methods of return; i.e. true or false. The text ahead of his example loosely implies that if the function was not 'successful' (whatever that means), the returned boolean will be 'false'.
Page 66: Array_intersect() with multiple arrays parameters. There is no indication if this is an AND or an OR operation, with multiple secondary arrays. That is, will an array1 entry be returned if it is in array2 *OR* array3, or must it be in array2 *AND* array3?
- - -
One thing the author did get correct is in his list of web-sites. The TOP entry is www.php.net/manual , and it consistently clears up the errors the author makes. I recommend it.
Customer Rating:      Summary: Not a Nutshell Book Comment: The O'Reilly "in a Nuthsell" series is the best reference to standard libraries and language features available. PHP in a Nutshell sullies the name, however, with what amounts to an introductory survey in the course and little, if any, analysis of standard libraries. Certain tips, such as those on flash and pdf handling are interesting, but irrelevant to most programmers. This goes doubly for the discussion of PHP's 2D drawing API; it seems as though the authors decided they would provide a schizophrenic volume which is on the one hand a beginner's tutorial and on the other hand a survey of the more esoteric, unused portions of the language.
Customer Rating:      Summary: Good review material but many errors Comment: I am pretty familiar with PHP and worked with it some time ago, but I needed a book to quickly refresh my knowledge of it for a project, and this book did a pretty good job of that. It gets to the point on the right topics (including chapters on OOP, Cookies and Sessions, and Databases) and has a short, useful function reference instead of listing every function under the sun.
Nonetheless, there are many errors both in the code and in the writing. If you don't have a solid foundation in PHP and programming, these errors can really throw you off. Sometimes I would get confused as I tried to figure out why a line of code does what the author says it does only to realize it was an error that made it into print. If the editing had been better and caught these errors, the book would have received a four-star rating from me.
Bottom line, if you know PHP and need a good reference book or a book to quickly review concepts and functions, this book is for you. Don't buy this book if you are new to PHP.
Customer Rating:      Summary: excellent writing Comment: I bought this book after studying PHP with the author's online tutorials. They covered quite a bit of what was in the book but I enjoyed the online version so much, I decided to thank him for putting a free online version out on the net by buying his book. In addition, I like to have the hard copy for a reference. Excellently written and one of the clearest and easiest programming books I've every read. It is also one of the few programming books I have read without any programming errors in it.
Customer Rating:      Summary: Decent broad coverage of many PHP basics Comment: A decent broad coverage of many PHP basics but I didn't really learn much more than I had found on my own by randomly poking around in the online PHP manual every time I needed a function to get a job done. I was hoping that reading a book like this from cover to cover would expose some parts of PHP I missed or teach some techniques and best practice that I didn't figure out myself. Unfortunately it did not.
For someone who known no PHP at all (and no C) I would give that a 4 star rating. But every PHP programmer has access to great free online PHP manual so I think this book has less value. And anyone who knows C can start programming PHP right away without reading much of anything. I assume the average programmer knows some C or Java and can read the online PHP manual. For those people, this book is no better than 3.
|
|