Vor knapp anderthalb Jahren, im Sommer 2004, erschien die neueste Version der
verbreiteten Programmiersprache PHP. Mit PHP 5 kamen nicht nur lange erwartete
Funktionen, viele Veränderungen der bisherigen Syntax lassen unter PHP 4
geschriebene Scripte unter der neuen Version vollkommen versagen. Ein Haufen von
Literatur beschäftigte sich schon mit der Thematik, und das vorliegende
Taschenbuch von Jens Ferner baut drumherum auch noch das Grundgerüst für
PHP.
Nur weil in diesem Buch jedoch die von mir sehr geschätzte Programmiersprache
PHP beschrieben wird, kann ich es nicht empfehlen, ganz im Gegenteil. Zu
allererst fragt sich der Leser, welches Klientel Ferner anspricht. Für
Einsteiger geht der Autor viel zu schnell in die Tiefe - bevor er elementare
Bestandteile erklärt, führt er in ein Dokumentationssystem für fertige
PHP-Scripte ein - und für erfahrenere Programmierer wird sein sehr einfacher
Erklärstil schnell ein Klotz am Bein. Hauptsächlich erklärt dieses Buch
nämlich nicht, sondern ist eine Art Kurzhandbuch, in dem PHP-Funktionen
beschrieben werden. Beschrieben, mehr nicht. Einfallsreiche Beispiele vermisst
der Leser - wenn überhaupt welche gegeben werden, sind sie sehr elementarer
Art. In vielen Fällen steht aber nur ein PHP-Befehl in einem schönen
Tabellenkasten drin, oft sogar vollkommen ohne Erklärung, aus welchem Grund
oder mit welchem Effekt man diese oder jene Funktion überhaupt benutzen
soll.
Gehen wir ein bisschen in die Tiefe. Auf Seite 31f. soll in die Weitergabe von
Variablen in der URL, also in Form einer $_GET-Variable, erklärt werden, wozu
eine Beispiel-URL angegeben ist. Einige Zeilen später soll gezeigt werden, wie
man an die Variablen im nächsten Script herankommt, allerdings mit falschem
Beispiel. Weiter unten baut der Autor auf einmal Javascript ein - wozu? Sind wir
jetzt in einen "Wie mach ich ne Klickibunti-Seite"-Kurs geraten oder
in einen ernsthaften PHP-Kurs, der gleichzeitig aber auch auf die Problematik
Javascript-Missbrauch eingegangen wäre und somit gleichzeitig die Benutzung in
Frage gestellt hätte, weil einige Benutzer eben wegen des Missbrauchs ihrem
Browser die Ausführung von Javascript verbieten.
Einige Seiten später beginnt er mit Objekten und Klassen, in der Systematik
direkt hinter "Individuelle Funktionen schreiben" (ohne übrigens in
diesem Zusammenhang die Benutzung von static-Variablen in Funktionen zu
erwähnen, das hat er nämlich schon zwanzig Seiten vorher gemacht, wo ein
Anfänger noch nicht wusste, wie man eine Funktion selbst definiert) und vor
"Referenzierung in PHP verstehen" zu finden, wieder jedoch ohne
genauer auf den Verwendungszweck einzugehen. Andere Handbücher bauen ein
praktisches Beispiel auf, um das nicht einfache Thema zu erklären, Jens Ferner
handelt das mit einem knappen Satz ab: "Klassen sind vielen Programmierern
noch aus der objektorientierten Programmierung bekannt".
Unter der Überschrift "Fehler abfangen" handelt der Autor ab, wie er
mit Fehlern in Scripten umgeht: er lässt die Ausführung einfach mit dem Befehl
die() abbrechen. "Die Funktion empfiehlt sich immer dann, wenn man ein
Kommando ausführt, das erfahrungsgemäß einen Fehler verursachen kann und
einen ordnungsgemäßen Ablauf des gesamten Skripts unmöglich macht".
Sollte ein Programmierer in diesem Fall nicht lieber nach der Fehlerquelle
suchen?
An anderen Stellen sind ebenso verrückte Beispiele zu finden. Um die Entfernung
von HTML- und PHP-Code aus Strings mit dem Befehl strip_tags() mit einem
Beispiel zu bestücken, lässt er aus dem String
"http://www.netz-id.de" - übrigens ein dezenter Hinweis auf seine
Internetseite, auf der er unter dem Punkt Rezensionen von PHP-Büchern als
erstes seine eigenen bewirbt - alle HTML- und PHP-Elemente entfernen. Sehr
sinnvoll, oder? In einem anderen Beispiel verwendet er die Funktion chop(),
obwohl er eigentlich rtrim() erklärt hat - auf die Idee, dass chop() ein Alias
für rtrim() ist, kommt ein Leser vermutlich aber nicht. Auf der folgenden Seite
92 initialisiert der Autor mittels srand() den Zufallsgenerator, aber ohne
srand() auch nur einmal im gesamten Buch zu erklären. Ein Leser, der im Index
nachschlägt, hat Pech gehabt, dort steht nur mt_srand() drin, ein
Nachfolgebefehl zu srand(), den man dann aber auch erst unter M statt unter S
wie srand() suchen muss.
Fazit
Nach 130 Seiten habe ich endlich aufgehört mich zu ärgern und das Buch aus der
Hand gelegt. Meine Empfehlung: Man nehme es erst gar nicht in die Hand.
Vorgeschlagen von Nico Haase
[Profil]
veröffentlicht am 18. Januar 2006 2006-01-18 19:58:28