¿Por qué recibo “falta de función” error? Mi función es justo allí!
-
26-09-2019 - |
Pregunta
Me estoy haciendo "Fatal error: Call to undefined function getSContent ()" con el código incluido, pero ... como se puede ver: Mi función es justo ahí
Por favor, ayuda. Estoy seguro de que necesito un poco de sueño.
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;
}
}
Solución
Se tiene que especificar el contexto. PHP a diferencia de, por ejemplo, C ++ no asume implícitamente this
.
$sectionContent = $this->getSContent($section);
Otros consejos
Su función es, en particular, un método. nombres de los métodos no vivo en la tabla de funciones PHP, que están asociados con una clase particular.
Se debe llamar con la notación $object->methodName()
, donde $object
puede ser $this
cuando dentro de un método con el fin de llamar a un método de instancia de la misma instancia que la actual.
La notación se convierte en ClassName::methodName()
cuando el método se declara estático. En circunstancias especiales, los métodos de instancia también piden ser llamados con esta sintaxis.