Namenskonvention für PHP-Funktionen

Wenn man in PHP selbst definierte Funktionen programmiert, muss man für diese einen gültigen Funktionsnamen festlegen. Hierbei ist man aus technischer Sicht an gewisse Vorgaben gebunden, sodass man nicht jeden beliebigen Namen verwenden kann. Zusätzlich muss man häufig firmeninterne Richtlinien und Standards oder auch Vereinbarungen innerhalb eines Projektteams beachten. In engen Grenzen kann man sich auch einen eigenen Stil aneignen. Eine wichtige Regel dabei ist, dass der Stil zumindest innerhalb eines Projekts einheitlich sein sollte. Hat man z.B. festgelegt, als Funktionsnamen nur Kleinbuchstaben zu verwenden, sollte man das auch überall beibehalten. Das vereinfacht die Lesbarkeit von Programmcodes.

Technische Vorgaben für Funktionsnamen

Ein Funktionsname muss mit einem Buchstaben oder einem Unterstrich beginnen. Danach können weitere Buchstaben, Ziffern oder Unterstriche folgen. Die nachfolgenden Funktionsnamen wären alle gültig und würden funktionieren.

<?php

function meineFunktion()
{
  // Beliebiger Programmcode
}

function meine_funktion()
{
  // Beliebiger Programmcode
}

function _meine_funktion()
{
  // Beliebiger Programmcode
}

?>

Entgegen der weit verbreiteten Meinung ist es unter Beachtung der Zeichenkodierung von der PHP-Datei auch möglich, Sonderzeichen aus dem erweiterten ASCII-Zeichensatz (128 - 255) zu verwenden. Das kann jedoch bei manchen Vorgängen zu Fehlern führen, sodass man darauf lieber verzichten sollte. Der nachfolgende Code wurde erfolgreich getestet.

<?php

function Çüéâ森()
{
  echo 'Teststring';
}

Çüéâ森();

?>

Groß- und Kleinschreibung von Funktionsnamen

Funktionsnamen sind nicht case-sensitive. Es wird somit nicht zwischen Groß- und Kleinschreibung unterschieden. Eine Funktion kann z.B. mit MeineFunktion(), meinefunktion() oder MEINEFUNKTION() benannt und aufgerufen werden. In allen Fällen ist dieselbe Funktion gemeint. Beim folgenden Beispiel würden alle drei Funktionsaufrufe funktionieren. Anhand dieser wenigen Codezeilen ist jedoch bereits ersichtlich, dass eine unterschiedliche Schreibweise die Lesbarkeit stört.

<?php

// Funktionsnamen festlegen
function meineFunktion()
{
  // Beliebiger Programmcode
}

// Nur Kleinbuchstaben
meinefunktion();

// Nur Großbuchstaben
MEINEFUNKTION();

// Groß- und Kleinbuchstaben
meineFunktion();

?>

Schreibweise camelCase

Bei den Programmierern hat sich im Laufe der Zeit quasi ein Standard für Funktionsnamen gebildet, der camelCase genannt wird. Hierbei ist der Name zweigeteilt. Der erste Teil beschreibt ein Tätigkeit, die die Funktion ausführen soll, z.B. umwandeln, rechnen etc. Dabei werden meistens englische Begriffe wie convert, calc etc. verwendet. Dieser Teil wird in Kleinbuchstaben geschrieben. Danach folgt ein Wort, mit dem beschrieben wird, auf was die Tätigkeit angewendet werden soll, z.B. auf Zahlen, Arrays, Dateien etc. Zusammengesetzt ergeben sich daraus sinnvolle Funktionsnamen.

<?php

function wandleBildDateien()
{
  // Beliebiger Programmcode
}

function rechneEinnahmen()
{
  // Beliebiger Programmcode
}

function convertPictureFiles()
{
  // Beliebiger Programmcode
}

function calcIncome()
{
  // Beliebiger Programmcode
}

?>

Schreibweise underscore_case

Nicht immer bezieht sich das Tätigkeitswort auf ein Substantiv, sodass camelCase in manchen Fällen ungeeignet sein kann. Beispielsweise stört beim Funktionsnamen rechneHerunter() der groß geschriebene Buchstabe H zu Beginn des zweiten Teils. Daher favorisieren viele Programmierer Funktionsnamen mit einem Unterstrich, das underscore_case genannt wird. Hierbei werden alle Wörter in Kleinbuchstaben geschrieben. Einzelne Wörter werden dabei mit einem Unterstrich voneinander getrennt. Das sorgt vielfach für eine bessere Übersichtlichkeit.

<?php

function rechne_hoch()
{
  // Beliebiger Programmcode
}

function rechne_herunter()
{
  // Beliebiger Programmcode
}

function calc_up()
{
  // Beliebiger Programmcode
}

function calc_down()
{
  // Beliebiger Programmcode
}

?>

Überschreiben von Funktionen

Das Überschreiben von Funktionen ist nicht möglich. Gibt man bei der Definition einer Funktion einen bereits verwendeten Funktionsnamen an, wird die Programmausführung mit einer Fehlermeldung abgebrochen.

<?php

function meineFunktion()
{
  echo 'Teststring 1';
}

// Funktioniert nicht
function meineFunktion()
{
  echo 'Teststring 2';
}

?>

Das hat zur Folge, dass man die Namen von internen PHP-Funktionen nicht für eigene Funktionen verwenden kann. Es ist ebenso nicht möglich, sogenannte reservierte Wörter als Funktionsnamen zu verwenden. Damit sind alle Wörter gemeint, die in PHP für interne Zwecke benötigt werden. Beispielsweise wird mit foreach() eine Schleife durchgeführt, sodass man diese nicht als Namen für eine eigene Funktion verwenden kann. Das betrifft viele Wörter wie z.B. for, if, and, or.