dedlfix: Implementierungen der PHP-Standard-Funktionen

Beitrag lesen

Tach!

Nein, echo ist eben _keine_ Funktion; siehe Beschreibung.
echo() is not actually a function ...
Ich lese das so, dass es momentan noch keine ist, aber eine werden soll. Zumindest sagt mir das "actually" das.

Das glaube ich nicht. Bei Python ist das print bei einem Versionssprung mal zu einer Funktion mutiert. Das setzt nun voraus, dass Klammernzwang besteht. Der Grund war unter anderem, bisherige Spezialsyntax zu eliminieren, deren Funktionalität nun mit normalen Funktionsparametern zu erreichen ist. Man kann nun nach dieser Umstellung auch noch weitere Parameter erfinden, falls Bedarf besteht.

Bei PHP kann man das zwar nicht prinzipiell ausschließen, aber es müsste (in Zukunft) bedeutende Gründe geben, warum echo in das Funktionskorsett gepresst werden sollte. Derzeit bietet es keine Vorteile, aber der Klammernzwang und die Komma-Geschichte würde Änderungen bei den Scripten erfordern, woraufhin sie gegebenenfalls inkompatibel zu bisherigen Versionen werden. Und für die Kurzschreibweise <?= müsste man sich auch was neues ausdenken (zumal sie ab PHP 5.4 unabhängig von short_open_tag generell verfügbar wird).

Daher glaube ich immer noch, dass echo() bei den Funktionen gut aufgehoben ist ;)

Anscheinend glauben die Handbuchautoren, dass es irgendwie sinnvoll wäre, echo (und print und weitere Sprachkonstrukte) wie eine Funktion darzustellen, um dann im Fließtext klarzustellen, dass es keineswegs wie eine Funktion verwendet werden kann (und bei den anderen zumindest der Klammernzwang entfällt). Sehr schön konterkarriert sich das in diesem Satz: "Additionally, if you want to pass more than one parameter to echo(), the parameters must not be enclosed within parentheses." Erst echo() mit Klammern schreiben, um sie dann zu verbieten ...

dedlfix.