为什么我会出现“缺少功能”错误?我的功能就在那里!

时间:2010-08-07 21:14:50

标签: php cakephp-1.3

我得到“致命错误:使用包含的代码调用未定义的函数getSContent()”但是......正如您所看到的:我的功能就在那里!

请帮忙。我确定我需要睡一觉。

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

}

2 个答案:

答案 0 :(得分:7)

您必须指定上下文。 PHP与...不同c ++不会隐含地假设this

$sectionContent = $this->getSContent($section);

答案 1 :(得分:2)

您的功能尤其是一种方法。方法名称不在PHP的函数表中,它们与特定的类相关联。

您应该使用符号$object->methodName()来调用它们,其中$object在方法内部可以是$this,以便调用与当前实例相同的实例的实例方法。< / p>

当方法声明为static时,符号变为ClassName::methodName()。在特殊情况下,也可以使用此语法调用实例方法调用。