PHP Coding Standard

Logo: PHP
16. Regel 13: Die Klammern für eine Funktion () stehen direkt am Funktionsnamen

Das die Klammern für eine Funktion () stehen direkt am Funktionsnamen stehen, ist ein sehr verbreiteter Standard. Wie die Parameter einer Funktion behandelt werden, ist nicht einheitlich geregelt. Es wird empfohlen der Vorgabe von php.net zu entsprechen und Parameter ohne Leerzeichen zu notieren, mit Ausnahme der Kommata. Der Funktionsaufruf "add(5,2)" könnte von einem unerfahrenen Programmier falsch interpretiert werden. Hier werden zwei Parameter übergeben, nicht eine Dezimalzahl, die in PHP mit "5.2" notiert werden würde. Auch deswegen und aus Gründen der Übersichtlichkeit wird nach dem Komma ein Leerzeichen eingefügt, so wie es im deutschen Schriftverkehr auch üblich ist.

Gültig
   // constants for database connection
   define('HOST', 'localhost');
   define('USER', 'root');
   define('PASSWORD', 'your_password');
   define('DATABASE', 'your_database_name');

   // connect the RDBMS and select database
   mysql_connect(HOST, USER, PASSWORD);
   $error = mysql_select_db(DATABASE);

Viele Skripte nutzen Variablen für die Festlegung von Verbindungsparametern. Konstanten haben den Vorteil, dass sie in Funktionen benutzt werden können. Außerdem ist es für Angreifer unmöglich, die Konstanten zu überschreiben.

Ungültig
   get_user_data( $username, $password ); // incorrect: spaces next to brackets
   get_user_data($username,$password); // incorrect: no space between arguments
   get_user_data($a, $b); // ambiguous: what do variables $a and $b hold?

Die beiden Code-Blöcke zeigen einmal die richtige und die falsche Verwendung von Parametern und Klammern. Ein weiterer Vorteil bei der Verwendung der richtigen Klammern ist das einfache Suchen nach einer bestimmten Funktion. Es ist denkbar, dass "define" auch in den Kommentaren steht. Eine Suche nach "define(" sollte in der Regel nur die Funktion zurückliefern.

Ausnahme zu Regel 12: Funktionen mit langen oder vielen Parametern; siehe dazu die nächste Regel. Wie Klammern gesetzt werden, ist unter Programmierern eine der größten Debatten aller Zeiten. Wenn sich das Team auf einen anderen Standard einigt, sollte dieser befolgt werden.