Mailinglisten-Archive |
Matthias Stolt wrote: > > On Mon, 11 Dec 2000 23:21:38 +0100, Ulf Wendel wrote: > > >> > warum muß ich statt $bar = (3 == $foo) ? &$foo : &$foo die Langform mit > >Ich wundere mich über den Parse Error, des > >Originals. Der bedingte Ausdruck scheint nicht im Zusammenhang mit > >Referenzen erlaubt. Warum ist das so? > > Ist nicht die Runtime-Referenz ein auslaufendes Feature? > In der php.ini-dist findet sich folgender Eintrag. > > allow_call_time_pass_reference= On ; whether to enable the ability to force arguments to be Das betrifft die Übergabe von Referenzen an eine Funktion, wenn die Referenz im Funktionskopf zuvor nicht "angemeldet" wurde. Es ist folgendes nicht mehr erwünscht. Der Grund dürfte im Compiler liegen. function foo($arg) { $arg = 3; } $bar = 9; foo(&bar); Der Code wird auch prompt kommentiert: Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of foo(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in c:\www\apache\hs~bla.php4 on line 16 Um dem Problem aus dem Weg zu gehen, ist foo() wie folgt zu deklarieren: function foo(&$arg) {... > Wenn ich jetzt den Operator '?' anschaue, dann kann er durchaus als ein Funktionsaufruf mit drei Parametern gesehen werden. > Sozusagen questionmark($bool,$wert1,$wert2). > Und dann ist der bemängelte Ausdruck mit questionmark($bool,&$wert1,&$wert2) zu betrachten, was eine call_time_pass_reference wäre, oder? > By the way, in meiner Version 4.03pl1 ist der Ausdruck ebenfalls nicht auswertbar. Leider weder mit noch ohne allow_call_time_pass_reference, > was gegen meine Theorie spricht. Nein, das ist sehr weit hergeholt. Du kannst einen bedingten Ausdruck nicht mit einem Funktionsaufruf vergleichen. Dies sind zwei paar Schuhe. ?: muß intern (fast) so gehandhabt werden, wie ein if-else, jedoch nicht wie ein Funktionsaufruf. Ulf
php::bar PHP Wiki - Listenarchive