Warum erhalte ich Fehler „-Funktion fehlt“? Meine Funktion ist genau dort!
-
26-09-2019 - |
Frage
Ich erhalte "Fatal error: Call to undefined function getSContent ()" mit dem mitgelieferten Code, aber ... wie Sie sehen können: Meine Funktion rechten Seite gibt es
Bitte, Hilfe. Ich bin sicher, ich brauche etwas Schlaf.
class InfoController extends AppController {
var $name = 'Info';
var $helpers = array('Html', 'Session');
var $uses = array();
function display() {
$path = func_get_args();
$section = $path[0];
$mainMenuActiveElement = $section;
$sectionContent = getSContent($section);
$this->set(compact('section', 'mainMenuActiveElement', 'sectionContent'));
$this->render('/pages/info');
}
function getSContent($section) {
$sectionContent = '';
switch ($section) {
case 'bases':
$sectionContent = 'some content';
break;
case 'informacion':
$sectionContent = 'some other content';
break;
}
return $sectionContent;
}
}
Lösung
Sie haben den Kontext angeben. PHP Im Gegensatz zu z.B. c ++ ist this
implizit nicht übernehmen.
$sectionContent = $this->getSContent($section);
Andere Tipps
Ihre Funktion ist, insbesondere ein Verfahren. Methodennamen nicht leben in der PHP-Funktionen Tabelle, werden sie mit einer bestimmten Klasse zugeordnet ist.
Sie sollten sie mit der Notation $object->methodName()
nennen, wo $object
$this
wenn innerhalb einer Methode sein, um eine Instanz Methode der gleichen Instanz wie die aktuellen zu nennen.
Die Notation wird ClassName::methodName()
, wenn die Methode statisch deklariert wird. Unter besonderen Umständen nennen Instanzmethoden auch mit dieser Syntax aufgerufen werden.