Pourquoi est-ce que je reçois « fonction manquante » erreur? Ma fonction est là!

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

  •  26-09-2019
  •  | 
  •  

Question

Je reçois « Erreur fatale: appel à la fonction non définie getSContent () » avec le code inclus mais ... comme vous pouvez le voir: Ma fonction est là

S'il vous plaît, aide. Je suis sûr que je besoin de dormir.

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

}
Était-ce utile?

La solution

Vous devez préciser le contexte. PHP à la différence par exemple c ++ ne présumez pas this implicitement.

$sectionContent = $this->getSContent($section);

Autres conseils

Votre fonction est, en particulier, une méthode. Les noms méthode ne vivent pas dans la table des fonctions de PHP, ils sont associés à une classe particulière.

Vous devriez les appeler avec la notation $object->methodName(), où $object peut être $this lorsque l'intérieur d'une méthode pour appeler une méthode d'instance de la même instance que l'actuel.

La notation devient ClassName::methodName() lorsque le procédé est déclaré statique. Dans des circonstances particulières, les méthodes d'instance d'appel appelés aussi avec cette syntaxe.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top