Pourquoi est-ce que je reçois « fonction manquante » erreur? Ma fonction est là!
-
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;
}
}
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.