$_GET in Klasse bringen

_voodoo

Erfahrenes Mitglied
Hallo,

Also ich habe ein Script das eine config.php "includet".
In dieser config.php wird eine Klasse definiert:
PHP:
class beispiel {
  var $beispiel1 = "inhalt1";
  var $beispiel2 = "inhalt2";
  var $beispiel3 = "inhalt3";
  var $beispiel4 = $_GET['beispiel4'];
}
Aufgrund einer Fehlermeldung konnte ich schlußfolgern dass die für $beispiel4 angewandte Methode nicht funktioniert.

Nun die Frage: Wie bring ich es fertig per $_GET eine Variable in die Klasse zu bringen?
 
sollte ja eigentlich gehen, da $_GET superglobal ist.
Wie lautet denn die Fehlermeldung genau?

Was passiert denn wenn du im Konstruktor deiner Klasse diese Zuweisung machst?

also so

PHP:
class meine_klasse{

  var $bla = "";
   
   function meine_klasse()
   {
     $bla = $_GET['bla'];
   }
}
 
Hm, eine Klasse ist ja nur eine Vorlage für eine Menge von Objekten. Somit ist es für mich verständlich, dass PHP die Get-Variable nicht in der Klasse ansich zulässt. Ich würde ich eine Klassenvariable deklarieren, die über den Konstruktor der Klasse mit der GET-Variable gesetzt wird:
PHP:
  // Klasse
  class test {

    // Klassenvariable
    var $get_variable;

    // Konstruktor
    function test($get_variable) {
      $this->get_variable = $get_variable
    }

  }
  
  
  // Instanzierung der Klasse
  $objekt = new test($_GET['parameter']);

snuu
 
So schaut das Script jetzt aus (auf's wesentliche gekürzt):
PHP:
class tss2info {
  var serverAddress = "";
  function tss2info($getvariable) {
    $this->serverAddress = $getvariable;
  }
}
$tss2info = new tss2info($_GET['ip']);

Fehler: div. Variablen werden nicht mehr definiert :(
 
Zuletzt bearbeitet:
Original geschrieben von _voodoo
So schaut das Script jetzt aus (auf's wesentliche gekürzt):
PHP:
class tss2info {
  var serverAddress = "";
  function tss2info($getvariable) {
    $this->serverAddress = $getvariable;
  }
}
$tss2info = new tss2info($_GET['ip']);


Fehler: div. Variablen werden nicht mehr definiert :(
Auf was für einem Server läuft das ganze? PHP Version? Normal schaut das ganze jedenfalls nicht aus ;)

Folgendes Script läuft ohne Fehlerausgabe:

PHP:
<?php

error_reporting(E_ALL);

class beispiel { 
  var $beispiel1; 
  var $beispiel2; 
  var $beispiel3; 
  var $beispiel4; 

    function beispiel() {
        $this->beispiel1 = "inhalt1"; 
        $this->beispiel2 = "inhalt2"; 
        $this->beispiel3 = "inhalt3"; 
        $this->beispiel4 = $_GET['beispiel4']; 
    }

    function showVar() {
        return $this->beispiel4;
    }
}

$tmp = new beispiel();

echo $tmp->showVar();
?>
Aufruft erfolgt per: class.php?beispiel4=foo

Ausgabe kann man sich ja wohl denken ;)
 
Zurück