Sorry, Leute…
Ich möchte dem Frager noch an die Hand geben, dass sprechende Variablennamen und der eine oder andere Quelltextkommentar ungemein zur Lesbarkeit des Codes beitragen. Mach lowerCamelCase.
yearNumberOfTenYearsAgo
ist viel (!) einfacher zu lesen als yearnumberoftenyearsago
oder gar solche kruden Abkürzungen wie yrnum10yrsago
.
Und mit kruden Abkürzungen meine ich auch sowas hier:
foreach ($files2 as $con1) {
Warum werden Files zu Connections? Oder was soll $con
für eine Abkürzung sein? Und warum $files2
? Was ist der Unterschied zu $files1
oder gibts das gar nicht und das heißt $files
? Schreib keine Zahlen in die Variablennamen, das ist immer unintuitiv zu verstehen. Die Länge von Variablennamen ist in keiner modernen Programmiersprache begrenzt. Beschreibe in den Variablennamen den Inhalt. Eindeutig! Ohne Abkürzungen!
Ausnahme hiervon ist $i als Zählvariable bei einer einfachen for-Schleife. Das verstehen alle Programmierer sofort. Aber auch hier gilt: sobald es kompliziert wird (etwa mehrere verschachtelte Schleifen), nimm sprechende Variablen.
Natürlich könnte ich jetzt bei jeder Variable suche, wo sie definiert ist und das dann nachvollziehen. Aber das ist viel komplizierte, als wenn deine Variable mir gleich sagt, was sie tut.
Und gerade bei foreach() würde ich immer den Ansatz fahren:
foreach($files as $file){}
$files (Plural) hält viele Dateien, $file (Singular) immer nur genau eine.
Zu den Quelltextkommentaren möchte ich beispielhafte Zeile nennen:
array_multisort($array_rest_1,SORT_DESC,$array_pre_1,SORT_DESC,$in);
Das ist so eine unintuitive Funktion, dass hier ein paar erklärende Worte zum gewünschten Ziel und zur konkreten Verwendung hilfreich wären.
Oder auch
$in[] = array(
'rest_1' => substr ( $con1, 6, 4 ),
'pre_1' => substr ( $con1, 11, 2 ),
'test_1' => $con1
);
Warum nimmst du nur Substrings? Warum gerade von 6-4 und 11-2? Warum haben alle Variablen eine _1
als Suffix? Gibt es auch eine _2
? Ein paar Kommentare wären so hilfreich.
Und als letztes… Einmal heißt es $oldyear, einmal $aktuelljahr. Einige dich auf eine Sprache (hust englisch hust) und mach keine Abkürzungen!