1. Das PHP-Handbuch (Manual)
Auf der offiziellen Homepage von PHP befindet sich neben den Quellcodes und Downloads zu PHP auch das Handbuch zu PHP. Neben den Grundlegenden Themen zum Skriptaufbau und Sicherheit besteht das Handbuch hauptsächlich aus einer Liste von Funktionen und Klassen die in PHP (je nach Installation) bereit stehen. Diese Funktionen sind dabei noch in Gruppen unterteilt. So gibt es z.B. Funktionsgruppen zu String und MySQL.
2. Finden einer Funktionsbeschreibung
Trotz der Tatsache das im Handbuch eine Liste der Funktionsbeschreibungen vorhanden
ist muss zuerst die passende Funktion gefunden werden. Als erstes sollte man
in der Funktionsreferenz nachgucken, insbesondere in den Funktionsgruppen. Eine
Funktion die ein Array sortieren soll wird wohl in der Gruppe
Arrays zu finden sein, eine Funktion um Texte in einem
String zu ändern wohl in der Gruppe Strings. In einer solchen
Gruppen finden sich neben allgemeinen Informationen wie Installation, Einstellungen
und Beispielen (zu diesen Gruppen) auch eine Liste der Funktionen die zu dieser
Gruppe gehören und ein Kurztext was diese leisten. So würde man in der
Gruppe Arrays die Funktion sort finden mit der
Beschreibung Sort an array
. Ein Klick auf den Link bringt einen
zu der entsprechenden Funktionsbeschreibung.
Die für den Programmierer einfachere Lösung (aber für Helfer und Forum-Moderatoren nervigere Lösung) wäre einfach eine entsprechende Frage zu stellen wie eine solche Funktion in PHP heißt.
<user> ich hab ein Problem, ich hab mit php nun ein array erstellt, jedoch sind die werte total unsortiert, wie sortiere ich die? <helfer> sort <helfer2> mit usort <helfer3> du kennst www.php.net? <helfer4> probier mal sort() You have been kicked from #helpchannel by operator3 (sort(), und nächste mal das handbuch auf www.php.net/manual lesen)
In den meisten Fällen handelt es sich um ein Funktionsname. Nun kann im Handbuch die entsprechenden Funktionsbeschreibung aufgerufen werden. Dazu gibt es mehrere Möglichkeiten.
-
Auf der Homepage gelankt man mit dem Link documentation oben im Menu in das Handbuch. Obwohl das Handbuch in mehreren Sprachen verfügbar ist sollte stehts English verwendet werden, da die englische Version immer stehts die aktuelle Funktionsbeschreibung enthält. In der englischen Version befindet sich die Funktionsgruppen in einem Unterpunkt namens Function Reference. Da die zu suchende Funktion wohl zu Arrays gehören klickt man auf Arrays. Ganz unten in der Gruppenbeschreibung findet sich eine sortierte Liste von den Funktionen in dieser Gruppe. Dort findet sich entsprechend auch ein Eintrag zu sort mit der Kurzbeschreibung Sort an array. Mit einem Klick gelangt man zu der entsprechenden Funktionsbeschreibung.
-
Auf der Homepage befindet sich oben rechts ein Eingabefeld für die Suche auf der Homepage. Standardmäßig wird nur in der Funktionsreferenz gesucht, kann jedoch entsprechend geändert werden wenn man weiß wo man suchen möchte. Dort kann der Name der Funktion eingegeben und durch die Suche gelangt man zu der entsprechenden Funktionsbeschreibung. Wenn die Suche keinen Treffer ergab so gibt sie wenigstens eine Liste von Funktionen aus, die so ähnlich klingen. Somit kann auch eine Funktion gefunden deren Namen vielleicht erst falsch geschrieben wurde.
-
Am einfachsten ist der Aufruf der URL
http://www.php.net/FUNKTIONSNAME
wobeiFUNKTIONSNAME
die Funktion ist, von der man die Funktionsbeschreibung haben möchte. So ein Aufruf der URL ruft automatisch die Suche der Homepage auf und in den meisten Fällen gelangt man so zu der entsprechenden Funktionsbeschreibung.
3. Lesen und Verstehen einer Funktionsbeschreibung
Obwohl es einfacher ist eine Funktionsbeschreibung in der Muttersprache zu lesen ist es sinnvoller die Sprache einer Funktionsbeschreibung auf English zu stellen. Dazu befindet sich in der Dropdown-Liste oberhalb der aktuellen Funktionsbeschreibung der Eintrag English mit der entsprechend die Sprache umgestellt werden kann.
Nach dem Namen der Funktionsbeschreibung ist eine Angabe ab welche Versionen diese Funktion in PHP implementiert wurde und danach die Kurzbeschreibung der Funktion.
Darauf folgt die eigenliche Funktionsbeschreibung. Diese Beginnt mit dem Funktionskopf.
Dieser besteht aus den Angaben Rückgabewert, Name der Funktion
und Parameterliste. Der Rückgabewert gibt entsprechend
den Typ an den die Funktion zurückliefert. Die Angaben void
bedeutet dass
die Funktion nichts zurückliefert. Die Parameterliste gibt an
welche Parameter die Funktion unterstützt. Jeder Parameter ist dabei in der Form
type $name
oder type &$name
. Der Typ gibt an welchen
Typ der Parameter haben sollte bzw.
muss. Dabei gibt es einige spezialtypen die in PHP nicht als solche existieren und
nur in der Dokumentation verwendet werden. So steht der Typ number
für
eine float- oder int-Zahl. Eine Liste dieser
Pseudotypen ist im Handbuch unter Pseudo-types
and variables used in this documentation zu finden. Nach dem Typ steht der
Name des Parameters. Dieser Name wird auch in der Funktionsbeschreibung verwendet.
Wenn vor dem Namen ein &
handelt sich bei diesem Parameter um
ein Parameter mit Referenz. Dabei muss einmal der Parameter eine Variable sein und des Weiteren
verändert die Funktion den Inhalt dieser Variable. Dies unterscheidet sich daher von
Funktionsaufrufen ohne dem &
die nur eine Kopie des Wertes übergeben.
Des Weiteren können Parameter in eckigen Klammern stehen. Damit wird angegeben dass dieser
Parameter optional ist und weggelassen werden kann.
Nach dem Funktionskopf folgt die genaue Beschreibung der Funktion und der Parameter. Dabei
greift sie auf die Namen der Parameter zu. Die Parameternamen stehen dabei in einer
monospace-kursiven Schrift um sie vom Fließtext zu unterscheiden. Daher ist der Satz
If search or replace are arrays, [...] als solches Schwachsinnig, ergibt
jedoch Sinn wenn man weiß dass search
und replace
die Namen der
Parameter sind. Die genaue Funktionsbeschreibung enthält zusätzlich einige Beispiel wie eine Funktion
verwendet wird sowie eine Auflistung aller Parameter und deren Funktionsweisen.
Der Rückgabewert einer Funktion wird extra aufgelistet und enthält eine Beschreibung
über den Rückgabewert. Bei einer Funktion mit Rückgabetyp void
wird
dieser entsprechend weggelassen, bei einem Rückgabetyp mixed
kann hier
jedoch eine Menge Text stehen um alle Fälle der Funktion abzudecken.
Da auch PHP stehts in der Entwicklung ist enthalten einige Funktionen einen kurzen Hinweis was sich in welcher PHP-Version an dieser Funktion getan hat. So sind z.B. einige Parameter erst ab einer bestimmten PHP-Version implementiert worden.
Die meisten Funktionen enthalten zusätzlich Querverweise zu anderen Funktionen, die einen Bezug zu der aktuellen Funktion haben. So kann es sein dass eine Funktion nicht das macht was man möchte, jedoch vielleicht so die richtige Funktion findet wenn man einen Querverweis öffnet.
Abschließend enthalten alle Funktionen einen Bereich von Userkommentaren. Sie erläutern nochmal einige Funktionshinweise und bieten auch Beispielcodes an, wie diese Funktion zu verwenden ist. In den Kommentare sind auch eigene Funktionsdefinitionen zu finden die vielleicht für andere Programmierer interessant sind.
4. Funktionsbeschreibung zu sort
Als Beispiel wählen wir die Funktionsbeschreibung zu sort. Diese Funktion ist in den PHP Versionen php4 und php5 vorhanden und anhand der Kurzbeschreibung ist zu erkennen dass mit dieser Funktion ein Array sortiert werden kann.
Der Funktionskopf beschreibt dass die Funktion einen boolischen Wert zurückliefert, der erste Parameter eine Variable mit einem Array sein muss und der zweite Parameter optional eine Integer-Zahl sein kann. Unabhängig was diese Funktion genau macht kann die Funktion wie folgt aufgerufen werden.
<?php
$a = array(4, 6, 10, -4);
$ret = sort($a);
$ret = sort($a, 4);
$ret = sort($a, 0);
sort($a, -400);
sort($a, 9*30-5);
sort($a, $a[0]); // möglich da $a[0] den Wert int(4) hat
?>
Die Funktionsbeschreibung enthält dann ein Text was diese Funktion leistet. In diesem
Fall wird das angegeben Array aufsteigend sortiert. Des Weiteren beschreibt sie den
Rückgabewert, der true
ist wenn das Array sortiert wurde und false
ist wenn ein Fehler auftrat.
Obwohl der optionale Parameter von der Syntax her jede beliebige Integer-Zahl erwarten
kann ergeben nur einige Integerwerte Sinn. So steht in der Beschreibung dass man die
Werte SORT_REGULAR
, SORT_NUMERIC
, SORT_STRING
und SORT_LOCALE_STRING
verwenden kann um die entsprechende Funktionalität
zu haben die in der Beschreibung angegeben ist. Auf den ersten Blick würde man meinen
dass es sich hierbei um Strings handelt und die Funktion vielleicht mit
sort($a, "SORT_NUMERIC");
aufruft. Dagegen spricht jedoch einmal die
Tatsache dass der 2. Parameter eine Zahl sein soll, kein String. Des Weiteren
deutet die Großschreibweise an dass es sich hierbei um Konstanten handelt. Wenn man
in der Gruppenübersicht nachguckt findet man dort auch in der Liste der definierten
Konstanten auch die angegebenen Konstanten. Also kann man diese Konstanten für diese
Funktion verwenden.
<?php
sort($a, SORT_STRING);
sort($a, SORT_NUMERIC);
?>
Als Querverweise enthält die Funktionsbeschreibung eine Auflistung anderer Sortierfunktionen. Und zum Schluss sind die Userkommentare zu dieser Funktion zu finden.