Unsinnige Sprachkonstrukte und Funktionen in PHP?
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.