Mailinglisten-Archive |
Andreas Stagl wrote: > Hallo nochmal, > > bin grad auf ein Phänomen gestoßen, das ich mir nicht ganz erklären kann. > > Folgendes Skript klappt einwandfrei, wenn ich es in einem "prozeduralen" > PHP-Skript aufrufe: > > <?php > $transmit_method='POST'; > print_r (${'_'.$transmit_method}); > ?> > > Sobald ich genau den selben Code innerhalb einer Klassen-Funktion aufrufe... > > <?php > class test > { > function show() > { > $transmit_method='POST'; > print_r (${'_'.$transmit_method}); > } > } > $test = new test(); > $test->show(); > ?> > > ... heisst es plötzlich "Notice: Undefined variable: _POST in > <skript_name> on line <linenumber>." > > Verzichte ich dort dann aber den Teil, wo der Name der auszugebenden > Variable dynamisch gebildet wird, und verwende stattdessen "hardcoded" > fix $_POST, funktioniert wieder alles: > > <?php > class test > { > function show() > { > print_r ($_POST); > } > } > $test = new test(); > $test->show(); > ?> > > Sieht für mich nach einem BUG in PHP aus, oder hab ich da irgendwo nen > Denkfehler? > > Könnte das Problem natürlich auch über ein switch bzw if Konstrukt > umgehen (werd ich vorübergehend vermutlich auch müssen), aber schön ist > das nicht. Hi, nur als Hinweis aus dem Manual: | Warning | | Please note that variable variables cannot be used | with PHP's Superglobal arrays within functions or | class methods. Also eher ein "Feature", als ein Bug. ;) Gruß, Alex
php::bar PHP Wiki - Listenarchive