Perché ottengo “manca funzione” errore? La mia funzione è proprio lì!
-
26-09-2019 - |
Domanda
Io sono sempre "Fatal error: Chiama per funzione non definita getSContent ()" con il codice incluso, ma ... come si può vedere: La mia funzione è proprio lì
, aiuto. Sono sicuro che ho bisogno di dormire un po '.
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;
}
}
Soluzione
È necessario specificare il contesto. PHP a differenza ad esempio C ++ non si assume implicitamente this
.
$sectionContent = $this->getSContent($section);
Altri suggerimenti
La vostra funzione è, in particolare, un metodo. nomi di metodo non vivono in tabella le funzioni di PHP, sono associati con una particolare classe.
Si dovrebbe chiamarli con il $object->methodName()
notazione, dove $object
può essere $this
quando all'interno di un metodo per chiamare un metodo della stessa istanza di quella istanza corrente.
La notazione diventa ClassName::methodName()
quando il metodo viene dichiarato statico. In particolari circostanze, metodi di istanza chiamano anche essere chiamato con questa sintassi.