In PHP exisitieren unheimlich viele Kontrollstrukturen und Funktionen. Klar, dass es dabei auch einiges gibt was man im Alltag eigentlich gar nicht braucht oder sauberer lösen kann oder vielleicht sogar unsinnig ist.
Mit den folgenden fünf Kontrollstrukturen musste ich persönlich noch nie arbeiten:
Variable Variablen
$foo = "bar"; $bar = "foobar"; echo $$foo; // gibt "foobar" aus |
Keine Ahnung wozu man sowas braucht. Bei Objekteigenschaften ist es noch ganz hilfreich, aber sonst…
goto-Befehl
foobar: echo "foobar"; goto foobar; |
Gibt es irgendeinen Anwendungsfall wo man goto wirklich gebrauchen kann und der Code immer noch sauber ist? Verwendet das irgendjemand?
Selbst im PHP-Manual konnte man sich ein wenig Ironie nicht verkneifen und man hat folgendes Bild von xkcd angefügt:
Bit-Operatoren
echo 12 ^ 5; // Ausgabe: "5" |
Bit-Operatoren kenne ich noch aus der C-Programmierung, aber in PHP sieht man sie nur selten. Meistens werden Sie bei Berechnungen im Binärbereich verwendet, ich persönlich habe sie allerdings noch nicht für eigene Programmierungen eingesetzt.
XOR-Operator
$a = true; $b = true; if($a xor $b) // Entweder $a oder $b sind wahr, aber nicht beide echo "true"; |
Eigentlich eine super Funktion, genutzt habe ich den XOR-Operator allerdings noch nie. Liegt vielleicht daran, dass mir die Existenz von XOR nie wirklich bewusst war. Nichtsdestotrotz habe ich XOR auch in fremden Code noch nie gesehen…
Final-Schlüsselwort
class foo { public final function methode(){} } class bar extends foo { public function methode(){} } // Fatal error: Cannot override final method foo::methode() in test.php on line 10 |
Das Final-Schlüsselwort verhindert, dass Funktionen oder ganze Klassen überschrieben werden können.
Aus meiner Sicht verhindert das dafür auch die Erweiterbarkeit und Flexibilität einer Anwendung. Der einzige Sinn dahinter ist fremde Entwickler in Ihrem Einfluss einzuschränken, wobei man sich in PHP über den Einsatz einer solchen Einschränkung streiten kann – immerhin ist die Erweiterbarkeit eines der größten Stärken dieser Programmiersprache.
Eine hübsche Zusammenstellung.
Wobei ich sagen muss, dass ich sowohl variable Variablen als auch „goto“ schon sinnvoll verwendet habe. Es kann natürlich sein, dass es eine noch cleverere Lösung gegeben hätte, aber ich fand es doch sehr praktisch.
Variable Variaben setze ich im Zusammenhang mit einer for-Schleife ein, um die einzelnen Menüpunkte mit einer Style-class „aktiv“ zu versehen, damit der User sieht, auf welcher Seite er sich gerade befindet.
Und goto ist bei „Affenformularen“ mit veränderter Ausgabe sehr praktisch, weil man dann direkt in den Teil des Formulars springen kann und nicht für jede Abfrage ein neues Formular im Script schreiben muss 😉