Mailinglisten-Archive |
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 ; passed by reference at function-call time. This method ; is deprecated, and is likely to be unsupported in future ; versions of PHP/Zend. The encouraged method of specifying ; which arguments should be passed by reference is in the ; function declaration. You're encouraged to try and ; turn this option Off, and make sure your scripts work ; properly with it, to ensure they will work with future ; versions of the language (you will receive a warning ; each time you use this feature, and the argument will ; be passed by value instead of by reference). 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. So viel dazu Matthias
php::bar PHP Wiki - Listenarchive