S
flenders schrieb:
Man hat mich mal belehrt (war es Shade?), dass es mit Komma bei echo schneller ist, da sonst im Speicher erst die ganzen Strings verknüpft werden müssen.
Ein Link zur "Belehrung"
Shade of Mine schrieb:
Es wäre also nicht kompliziert das für print() auch zu implementieren...
Doch, daß wäre sogar ziemlich kompliziert. Zum einen sind weder print noch echo Funktionen, die Parameter-Übergabe und -Abprüfung sieht intern also etwas anders aus. Zum anderen kommt print im Gegensatz zu echo genauso wie das Komma in der Operatoren-Rangfolge-Tabelle (irgendwie hört sich das englische "precedence-Table" besser an, oder?) vor. Man könnte also bei Verwendung weiterer Kommata nicht zuordnen, ob das Komma jetzt zum Print gehört, oder ob es ein eigenständiger "Operator" ist.
Mit print könnte man z.B. sowas hier veranstalten:
echo print 'Hello',print ' ',print 'World'; // oder auch
echo print 'Hello',' ',print 'World';
Im zweiten Fall würde das Leerzeichen jetzt vom echo verarbeitet werden, wärend im ersten Fall nur die einsen vom echo abgefrühstückt werden würden. Wenn jetzt aber auch Kommata für die Parameter vom print erlaubt wären, dann müsste der Computer schon raten, was der Programmierer jetzt wohl gemeint hat.
Jetzt könnte man natürlich damit kommen, daß man die einzelnen Parameter dann halt Klammern müsste, womit wir dann aber erstens den Parser komplett verwirren würden, und zweitens wäre das ja auch bei echo nicht möglich.
Ein Beispiel:
echo ('Hallo'),(' '),('Welt'); // => geht einwandfrei
echo ('Hallo'.' '.'Welt'); // => geht auch
echo ('Hallo', ' ', 'Welt'); // Parse-Error
Gruß Jens