phpbar.de logo

Mailinglisten-Archive

[php] Superglobals in Klassen

[php] Superglobals in Klassen

Andreas Stagl a.stagl at gmx.at
Son Okt 1 10:45:47 CEST 2006


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.

Jemand eine Idee?

Danke im Voraus & liebe Grüße nochmal,
Andy





php::bar PHP Wiki   -   Listenarchive