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; 
    }

}
È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top