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