andi_b: variable parameter

hello again,
ich bastele gerade an einer funktion herum, die mehrere parameter selbsständig verwaltet und auch funktioniert. nichtsdestotrotz bekomme ich immer eine notice, die ich gern erkläart haben würde:

Notice: Use of undefined constant didaktik - assumed 'didaktik' in e:\eigene\_web\hu\_include\control\UserVerification.class.php(21) : eval()'d code on line 1

der code ist dieser, der parameter wird auch korrekt übergeben:

//...
 function UserVerification($dataBase, $login = null, $password = null, $sessionID = null){
  $numargs = func_num_args();
     $arg_list = func_get_args();
     $args = "";

for ($i = 0; $i < $numargs && $arg_list[$i] != null; $i++) {
       if ($i != 0) {
         $args .= ", ";
       }

$args .= "$param" . ($i + 1);
       eval ("$param" . ($i + 1) . " = " . func_get_arg($i) . ";");
     }
  eval("$this->construct_UserVerification_" . $i . "(" . $args . ");"); // Call (real)constructor function

$this->dbInstance = new dbAccess($this->userArray['my_database']);
  $this->currentConnection = &$this->dbInstance->dbConnect();
 }

function construct_UserVerification_1($dataBase){
  die($dataBase);
  $this->userArray['my_database'] = $dataBase;
 }
//...

hat jemand von euch einen heissen tip?

dankeschön sagt der andi

  1. Hallo du da draußen,

    eval("$this->construct_UserVerification_" . $i . "(" . $args . ");");

    Vermutlich liegt der Fehler hier:
    Die Variable $args enthält wahrscheinlich im Moment des Aufrufs den String "didaktik". Nun überlege dir, was für ein Aufruf durch eval() gemacht wird:

    $this->construct_UserVerification_x(didaktik);

    Es wird also nach einer Konstante didaktik gesucht, die es nicht gibt.
    Problembehebung: Setze didaktik einfach in Anführungszeichen, also mit deinem Code:
    eval("$this->construct_UserVerification_" . $i . "('" . $args . "');");

    Grüße von hier drinnen, aus Biberach an der Riss (http://www.stadt-biberach.de/),
    Candid Dauth (Dogfish)

    --
    Selten Dumme sind nicht selten, aber dumm.
    http://dogfish.net.tc/
    1. weidmannsdank :)