Por que recebo erro de "função ausente"? Minha função está aí!
-
26-09-2019 - |
Pergunta
estou obtendo "Erro fatal: chame para função indefinida getScontent ()" Com o código incluído, mas ... como você pode ver: minha função está ali!
Por favor ajude. Tenho certeza de que preciso dormir um pouco.
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;
}
}
Solução
Você tem que especificar o contexto. PHP diferente de EG C ++ não assume this
implicitamente.
$sectionContent = $this->getSContent($section);
Outras dicas
Sua função é, em particular, um método. Os nomes dos métodos não vivem na tabela de funções do PHP, eles estão associados a uma classe específica.
Você deve ligar para eles com a notação $object->methodName()
, Onde $object
pode ser $this
Quando dentro de um método, para chamar um método de instância da mesma instância que o atual.
A notação se torna ClassName::methodName()
Quando o método é declarado estático. Em circunstâncias especiais, os métodos de instância também são chamados com esta sintaxe.