PHP Coding Standard |
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.
// 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.
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.