Warum erhalte ich Fehler „-Funktion fehlt“? Meine Funktion ist genau dort!

StackOverflow https://stackoverflow.com/questions/3432066

  •  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; 
    }

}
War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top