Почему я получаю ошибку «Отсутствующую функцию»? Моя функция прямо там!
-
26-09-2019 - |
Вопрос
я получаю «Фатальная ошибка: вызов неопределенной функции GetSontent ()» С включенным кодом, но ... Как вы можете видеть: моя функция прямо там!
Пожалуйста помоги. Я уверен, что мне нужно сон.
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;
}
}
Решение
Вы должны указать контекст. PHP в отличие от, например, C ++ не предполагает this
неявно.
$sectionContent = $this->getSContent($section);
Другие советы
Ваша функция, в частности, метод. Имена методов не живут в таблице функций PHP, они связаны с определенным классом.
Вы должны позвонить им с обозначением $object->methodName()
, куда $object
может быть $this
Когда внутри способа, чтобы вызвать метод экземпляра того же экземпляра, что и текущий.
Обозначение становится ClassName::methodName()
Когда метод объявлен статическим. В особых обстоятельствах методы экземпляра вызова также называются с этим синтаксисом.