Gibt es eine Möglichkeit goToPage aus den globalen PHP-Funktionen aufzurufen?
Nein, das wird nicht funktionieren. Der Grund ist ein wenig komplexer:
Der goToPage()
-Befehl muss ja "sofort" springen, das heißt, die Ausführung des PHP-Codes muss an der Stelle unterbrochen werden. Deshalb wird da goToPage()
vor der Code-Ausführung durch ein return
ersetzt. Beim return
wird auch gleich definiert, wohin der Fragebogen springen soll.
Wenn man aus einer Funktion zurückkehrt, ist man natürlich im übergeordneten Code und der macht kein return
. Sie könnten (aber ich bin nicht sicher, ob das die Komplexität reduziert und von SoSci so akzeptiert wird) folgendes versuchen:
function alterPruefen() {
if(value('AL01') < 18) {
goToPage('end');
}
return true;
}
Und zum Aufruf der Funktion:
if (true !== ($ret = alterPruefen())) {
return $ret;
}
Vermutlich wäre es aber einfacher, das goToPage()
in den Haupt-Code zu verschieben. Die Funktion würde dann einfach nur die Seite zurückgeben, wohin ggf. gesprungen werden soll:
function alterPruefen() {
if(value('AL01') < 18) {
return 'end';
}
return true;
}
Und
if (true !== ($ret = alterPruefen())) {
goToPage($ret);
}