我得到“致命错误:使用包含的代码调用未定义的函数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;
}
}
答案 0 :(得分:7)
您必须指定上下文。 PHP与...不同c ++不会隐含地假设this
。
$sectionContent = $this->getSContent($section);
答案 1 :(得分:2)
您的功能尤其是一种方法。方法名称不在PHP的函数表中,它们与特定的类相关联。
您应该使用符号$object->methodName()
来调用它们,其中$object
在方法内部可以是$this
,以便调用与当前实例相同的实例的实例方法。< / p>
当方法声明为static时,符号变为ClassName::methodName()
。在特殊情况下,也可以使用此语法调用实例方法调用。