variable parameter
andi_b
- php
0 Candid Dauth0 andi_b
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
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)
weidmannsdank :)